Size: a a a

2020 May 09

ЗП

Зигохистоморфный Пре... in Haskell
источник

IK

Ilya Kos in Haskell
Может кто-то знает что можно почитать на тему описанного в этом ответе? https://stackoverflow.com/a/46807312/3001830 Может есть какие-то новые библотеки которые таким занимаются?
источник

ЗП

Зигохистоморфный Пре... in Haskell
что-то такое?
https://github.com/bolt12/laop
источник

IK

Ilya Kos in Haskell
В частности, мне хочется придти к чему-то где я могу работать с матрицами в type-safe манере, причем чтобы сами матрицы можно можно было определять в рантайме. Т е на момент компиляции матрицы переменной размерности, но операции проверены на корректность
источник

MP

Misha Puzanov in Haskell
Ilya Kos
В частности, мне хочется придти к чему-то где я могу работать с матрицами в type-safe манере, причем чтобы сами матрицы можно можно было определять в рантайме. Т е на момент компиляции матрицы переменной размерности, но операции проверены на корректность
а как понимать корректность тогда?
источник

IK

Ilya Kos in Haskell
M a b -> M b c -> M a c. У меня это все пока чисто на идейном уровне пока и я хочу понять, могу ли я вообще что-то подобное сделать
источник

IK

Ilya Kos in Haskell
Но если эти b не конкретные, то компилятор мне вряд ли сможет сказать что-то дельное
источник

MP

Misha Puzanov in Haskell
a и b известны статически?
источник

MP

Misha Puzanov in Haskell
я собственно спросил, не потому что знаю ответ, а уточнить, не хотите ли вы странного
источник

MP

Misha Puzanov in Haskell
но есть вроде даже с синглетонами реализации
http://hackage.haskell.org/package/matrix-sized
источник

MP

Misha Puzanov in Haskell
то есть да, все будет корректно, но работать с этим наверное геморно
источник

IK

Ilya Kos in Haskell
да, а хочется сразу на два стула сесть
источник

IK

Ilya Kos in Haskell
и чтобы был не кок
источник

IK

Ilya Kos in Haskell
Это выглядит занимательно
источник

AA

A64m AL256m qn<co... in Haskell
Misha Puzanov
а как понимать корректность тогда?
че тут странного, проверяется, что размерности какие надо совпадают у перемножаемых матриц, зачем их статически знать?
источник

MP

Misha Puzanov in Haskell
A64m AL256m qn I0
че тут странного, проверяется, что размерности какие надо совпадают у перемножаемых матриц, зачем их статически знать?
ну это не мой вопрос был

для всех реалистичных случаев либо матрицы будут динамических размерностей и тогда придется все делать динамически (и они тогда буду какие-нибудь разреженные и т.п.), либо заранее известной размерности, типа 3 тогда там нечего особо проверять
источник

AA

A64m AL256m qn<co... in Haskell
чего?
источник

AA

A64m AL256m qn<co... in Haskell
пишешь матрица умножить на матрицу, размерности тайпчекаются и проталкиваются наверх до того кода который их десериализует, например, вот при десериализации будет рантайм проверка по одной на матрицу что у них нужные размерности совпадают
источник

AA

A64m AL256m qn<co... in Haskell
т.е. знать их статически не нужно
источник

IK

Ilya Kos in Haskell
Misha Puzanov
ну это не мой вопрос был

для всех реалистичных случаев либо матрицы будут динамических размерностей и тогда придется все делать динамически (и они тогда буду какие-нибудь разреженные и т.п.), либо заранее известной размерности, типа 3 тогда там нечего особо проверять
ну офк будет какая-то проерка произвольных входных данных, которая зафейлится может. Хочется чтобы после этой первичной валидации выявлялись свойства матриц, которые позволяют гарантировать что применение обобщенных операций (умножение и т п) не будут фейлится.
источник