Size: a a a

2021 March 31

AA

A64m AL256m qn<co... in Haskell
а если закрытое семейство?
источник

к

кана in Haskell
а вот так если делать, то ошибки нет, она внутри сидит


*Main> :kind! Test2
Test2 :: Sigma [Nat] (Elem 1)
= MkSigma '[2, 3, 4] ('There ('There ('There (TypeError ...))))
источник

к

кана in Haskell
если эту проблему решить, то общий Auto в целом получается

а ну хотя этот Auto вообще всегда будет подходить
источник
2021 April 01

L

Lierdakil in Haskell
кана
а вот так если делать, то ошибки нет, она внутри сидит


*Main> :kind! Test2
Test2 :: Sigma [Nat] (Elem 1)
= MkSigma '[2, 3, 4] ('There ('There ('There (TypeError ...))))
Я тут чего-то наворотил странного чтобы эту TypeError вытащить наверх:

type Test = ListWith1' @[0,1,2,3] ElemAuto -- ok
type Test2 = ListWith1' @[0,4,2,3] ElemAuto -- error

type ListWith1' :: forall xs. Elem 1 xs -> ListWith1T xs
type family ListWith1' x where
 ListWith1' Nowhere = TypeError (Text "test")
 ListWith1' @xs x = ListWith1 @xs x

type ElemAuto :: forall x xs. Elem x xs
type family ElemAuto where
 ElemAuto @x @xs = App (Count 1 x xs)

type family Count acc x xs :: Nat where
 Count acc x (x:xs) = acc
 Count acc x (y:xs) = Count (acc + 1) x xs
 Count acc x '[] = 0

type App :: Nat -> Elem x xs
type family App n where
 App 0 = Nowhere
 App 1 = Here
 App n = There (App (n-1))

Но это не сильно помогло:

:kind! Test2
Test2 :: ListWith1T '[0, 4, 2, 3]
= (TypeError ...)
источник

к

кана in Haskell
да полагаю дело не в вытаскиваннии
источник

к

кана in Haskell
а в том что это валидный тип, не должно быть никакой ошибки
источник

к

кана in Haskell
вот это если бы этот тип возник у терма, то было бы другое дело
источник

L

Lierdakil in Haskell
У терма он по техническим причинам возникнуть не может
источник

L

Lierdakil in Haskell
Так что да
источник

i

inokaly in Haskell
Привет всем)) На работе по необходимости нужно научиться кодить на хаскеле)
С чего бы лучше начать?

Если важно , за плечами С++ со всеми вытекающими
источник

к

кана in Haskell
МОЖНО
источник

к

кана in Haskell
источник

А

Алексей ayaye :)... in Haskell
inokaly
Привет всем)) На работе по необходимости нужно научиться кодить на хаскеле)
С чего бы лучше начать?

Если важно , за плечами С++ со всеми вытекающими
начать с этого чата: @haskell_learn :) там есть подборка материалов для начинающих
источник

L

Lierdakil in Haskell
кана
МОЖНО
В целом это офигенно! Много бойлерплейта если что-то ещё добавлять к этому Auto, но офигенно!
источник

Y

Yuuri in Haskell
inokaly
Привет всем)) На работе по необходимости нужно научиться кодить на хаскеле)
С чего бы лучше начать?

Если важно , за плечами С++ со всеми вытекающими
Интересно, а что это за работа такая? Не Касперский случаем?
источник

к

кана in Haskell
Yuuri
Интересно, а что это за работа такая? Не Касперский случаем?
да это уже третий крестовик за последние пару месяцев на моей памяти, которого на работе просят хаскель изучить, действительно интересно
источник

DM

Dmitriy Mozhevitin in Haskell
Интересно еще для чего просят изучить, для общего развития (странно но why not), или собираются перекатываться на хаскелль
источник

AA

A64m AL256m qn<co... in Haskell
собираются переписать что-то с хаскеля на плюсы
источник

[

[BRM]White Rabbit in Haskell
A64m AL256m qn I0
собираются переписать что-то с хаскеля на плюсы
Коммон практис?
источник

AA

A64m AL256m qn<co... in Haskell
не коммон, переписывать с хаскеля обычно нечего
источник