Size: a a a

2020 May 09

IK

Ilya Kos in Haskell
ззвучит как что-то что можно сделать но не очевидно как именно
источник

KV

Kirill Valyavin in Haskell
Если не хочется бодаться с тайп-чекером, всегда можно после рантайм-валидации сделать ансейф-коерс к типу с нужными размерностями
источник

KV

Kirill Valyavin in Haskell
Хотя скорее даже и это не нужно
источник

IK

Ilya Kos in Haskell
а хочется чтобы эта самая “нужная” размерность определялась входными данными (с некоторыми ограничениями)
источник

KV

Kirill Valyavin in Haskell
Ilya Kos
а хочется чтобы эта самая “нужная” размерность определялась входными данными (с некоторыми ограничениями)
Так она и будет. Вопрос-то только в том, как данные поднять с терм-левела на тайп-левел
источник

AA

A64m AL256m qn<co... in Haskell
ну для натов-то такая функциональность в base есть
источник

IK

Ilya Kos in Haskell
поднятие в тайп-левел?
источник

IK

Ilya Kos in Haskell
где
источник

KV

Kirill Valyavin in Haskell
источник

AA

A64m AL256m qn<co... in Haskell
GHC.TypeNats/GHC.TypeLits
источник

к

кана in Haskell
ну вот принимаю я матрицу, на выходе Matrix n m
источник

к

кана in Haskell
принимаю другую матрицу, там выход Matrix m’ u
источник

к

кана in Haskell
но в данных m и m’ одинаковые, но компилятор об этом не знает
источник

к

кана in Haskell
как ему сообщить это
источник

R

Roman in Haskell
кана
как ему сообщить это
функция, которая принимает Proxy m, Proxy m' и возвращает Maybe (m :~: m')
источник

R

Roman in Haskell
с гхцшными натами придется использовать unsafeCoerce внутри
источник

AA

A64m AL256m qn<co... in Haskell
кана
как ему сообщить это
источник

AV

Alexander Vershilov in Haskell
А у нас есть библиотека для операций всяких на type level lists?
источник

AV

Alexander Vershilov in Haskell
чтобы не тащть синглтоны
источник

AV

Alexander Vershilov in Haskell
И чтобы самому в тысячный раз не писать заново
источник