Size: a a a

PureScript — русскоговорящее сообщество

2020 April 23

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Получается если аналог Either.note error, то тут Covered.note error fallback, вот как раз интересно, можно ли через какие-нибудь трансформеры один раз в do-нотации сказать этот fallback и больше не повторяться?
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
Anton Kotenko
Получается если аналог Either.note error, то тут Covered.note error fallback, вот как раз интересно, можно ли через какие-нибудь трансформеры один раз в do-нотации сказать этот fallback и больше не повторяться?
хз, сделай свой CoveredT
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Зигохистоморфный Препроморфизм
я вот давно еще думал сделать что-то такое (профунктоная валидация)

type ChronicleV exc = ChronicleT (Variant exc)
newtype CheckV exc m i o = CheckV (Star (ChronicleV exc m) i o)
Да, вот так я ещё не умею, но похоже на то, что надо :)
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
-- Star f a b = a -> f b
-- input -> ChronicleT error m output
-- input -> m (These error output)
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
Variant просто позволит сделать открытое множество выбора ошибок
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
ChronicleV по образу purescript-checked-exceptions
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
только вместо ExceptT у меня ChronicleT
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
Either x y = x + y
These x y = x + y + x * y = (x + y) + (x * y) = Either (Either x y) (Tuple x y)
источник

GP

Gleb Patsiia in PureScript — русскоговорящее сообщество
Thinking Functionality
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
иногда полезно переходить на изоморфизмы для типов
мощность множества населенности типа = число Пеано
источник

GP

Gleb Patsiia in PureScript — русскоговорящее сообщество
Миллион процентов полезно, книга вообще открыла сознание мне
источник

GP

Gleb Patsiia in PureScript — русскоговорящее сообщество
Ребят как это в пурсе вырзаить?
data Kind = One | Two | Three

data EventData (k :: Kind) where
 DataOne :: { test :: String, hello :: String } -> EventData One
 DataTwo :: { blah :: Integer , lol :: String } -> EventData Two

data Event (k :: Kind) = Event
 { prop1 :: String
 , prop2 :: Integer
 , eventData :: EventData k
 }
источник

GP

Gleb Patsiia in PureScript — русскоговорящее сообщество
ГАДТ то нет получается
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
Gleb Patsiia
Ребят как это в пурсе вырзаить?
data Kind = One | Two | Three

data EventData (k :: Kind) where
 DataOne :: { test :: String, hello :: String } -> EventData One
 DataTwo :: { blah :: Integer , lol :: String } -> EventData Two

data Event (k :: Kind) = Event
 { prop1 :: String
 , prop2 :: Integer
 , eventData :: EventData k
 }
сделать GADT черезе Лейбница
источник

GP

Gleb Patsiia in PureScript — русскоговорящее сообщество
Ага это я прочел уже
источник

GP

Gleb Patsiia in PureScript — русскоговорящее сообщество
Блин столько конечно дейтсвий
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
правда пруф тягать с собой прийдется всегда)
источник

GP

Gleb Patsiia in PureScript — русскоговорящее сообщество
А может есть способы вообще как то без доп структуры data Kind = One | Two | Three
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
источник

GP

Gleb Patsiia in PureScript — русскоговорящее сообщество
потму что кайнды я тут в целом для тогочтобы только eventData помечать завез
источник