Size: a a a

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

2020 April 08

ЗП

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

R:

Ryner :: () -> IO ❄️ in PureScript — русскоговорящее сообщество
> update :: model -> event -> Update event model
источник

R:

Ryner :: () -> IO ❄️ in PureScript — русскоговорящее сообщество
Инконсистанси
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
z' = flip {x:_, y:_} 100 200

будет {x: 200, y:100}
источник

R:

Ryner :: () -> IO ❄️ in PureScript — русскоговорящее сообщество
Ну, это на уровне значений
источник

ЗП

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

ЗП

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

ЗП

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

R:

Ryner :: () -> IO ❄️ in PureScript — русскоговорящее сообщество
Да, гениально
type Update model event = UpdateM event model

newtype UpdateM event model = Update { model :: model, affs :: Array (Aff event) }
источник

ЗП

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

ЗП

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

ЗП

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

ЗП

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

ЗП

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

R:

Ryner :: () -> IO ❄️ in PureScript — русскоговорящее сообщество
Тут немного другой Update имеется в виду
источник

R:

Ryner :: () -> IO ❄️ in PureScript — русскоговорящее сообщество
Это просто описание реакции на ивент, грубо говоря
источник

R:

Ryner :: () -> IO ❄️ in PureScript — русскоговорящее сообщество
Хм, странно:
instance bifunctorUpdate :: Bifunctor Update where
 bimap f g (Update context) = Update context { model = f context.model, affs = (map g) <$> context.affs }

instance functorUpdate :: Functor (Flip Update model) where
 map f (Update context) = Update context { model = f context.model }


Говорит:

Orphan instance functorUpdate found for

   Data.Functor.Functor (Flip Update model)

 This problem can be resolved by declaring the instance in Data.Bifunctor.Flip or Data.Functor, or by defining the instance on a newtype wrapper.

in type class instance

 Data.Functor.Functor (Flip Update model)
источник

ЗП

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

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
newtype FlippedUpdate ... = FlippedUpdate (Flip ...)
источник

ЗП

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