Size: a a a

Elm Lang сообщество разработчиков

2017 November 02

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Спасибо за идею
источник

к

кана in Elm Lang сообщество разработчиков
ID:351615646
типы это способ описать значения
Все не так просто
источник

к

кана in Elm Lang сообщество разработчиков
ID:351615646
типы это способ описать значения
ведь можно работать с типами, которые вообще значений не имеют, просто как простроснство для построения дсл
источник

NK

ID:351615646 in Elm Lang сообщество разработчиков
всмысле?
источник

NK

ID:351615646 in Elm Lang сообщество разработчиков
значения дегенеративных сум типов это тоже значения
источник

к

кана in Elm Lang сообщество разработчиков
ну тут уже упоминали сервант например
источник

к

кана in Elm Lang сообщество разработчиков
там типы без значений,
data a :> b
источник

NK

ID:351615646 in Elm Lang сообщество разработчиков
🤔
источник

к

кана in Elm Lang сообщество разработчиков
А потом мы на тайплевеле траверсим такие списки и че-то делаем
источник

NK

ID:351615646 in Elm Lang сообщество разработчиков
что за :>?
источник

к

кана in Elm Lang сообщество разработчиков
или вот, фолды на тайплевел списках
источник

к

кана in Elm Lang сообщество разработчиков
Если тебе интересно, то вот я добил решение, а именно обобщил на списки
class (c1 x, c2 x) => ComposeConstraint c1 c2 x where
instance (c1 x, c2 x) => ComposeConstraint c1 c2 x where

type family FoldR (f :: a -> b -> b) (s :: b) (xs :: [a]) where
 FoldR _ s '[] = s
 FoldR f s (x ': xs) = f x (FoldR f s xs)

class Const' a b where
instance Const' a b where

type IdentityConstraint = Const' ()

type ComposeConstraints (l :: [* -> Constraint]) =
 FoldR ComposeConstraint IdentityConstraint l

z :: ([Int], [Float])
z = mapBoth
 @(ComposeConstraints '[Num, Ord])
 ((:[]) . product . nub)
 [3, 2, 3, 2, 1]
 [5.3, 2.1]
источник

к

кана in Elm Lang сообщество разработчиков
ID:351615646
что за :>?
тип
источник

NK

ID:351615646 in Elm Lang сообщество разработчиков
какой
источник

к

кана in Elm Lang сообщество разработчиков
новый
источник

к

кана in Elm Lang сообщество разработчиков
мы создали новый тип :> с двумя переменными a и b
источник

NK

ID:351615646 in Elm Lang сообщество разработчиков
оо
источник

NK

ID:351615646 in Elm Lang сообщество разработчиков
чет не видел инфиксных типов
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
(,) - "инфиксный тип" :)
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Инфиксный конструктор типа, то есть
источник