Size: a a a

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

2018 December 27

λ

λоλторт in PureScript — русскоговорящее сообщество
Зигохистоморфный Препроморфизм
Day convolution есть exists a b. (a -> b -> x) (f a) (g b)
Именно exists, а не forall? Оо
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
forall a b. (a -> b -> x) -> f a -> g b
источник

λ

λоλторт in PureScript — русскоговорящее сообщество
Хммммммммм. А тут точно больше стрелок быть не должно?
источник

λ

λоλторт in PureScript — русскоговорящее сообщество
Ок, лучше по ссылкам схожу почитаю.
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
я так по диагонали пробежался, вроде понятно
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
блин, я думал тут гифки с превьюшками будут, так не интересно
источник

ЗП

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

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
после нашего общения Лиам заменил data на newtype :D
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
ага, я видел) https://github.com/paf31/purescript-day/pull/8/files#diff-3dae30ddedc417c4cf5d5666bdaee460R39
ну круто, там вроде data не нужен
источник

KV

Kirill Valyavin in PureScript — русскоговорящее сообщество
Vasiliy Yorkin
я всё раньше не понимал как избежать вот такого:
  for_ e0 \v0 ->
   for_ e1 \v1 ->
     for_ e2 \v2 ->
       b v0 v1 v2

но вот вчера увидел решение на основе day convolution и не понял ничего совсем

  for_ (e0 <⊗> e1 <⊗> e2) \(v0 /\ v1 /\ v2) ->
   b v0 v1 v2


надо намутить что-то вводное, я сходу не понимаю что написано в том пакете
А ссылку можно?
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
источник

KV

Kirill Valyavin in PureScript — русскоговорящее сообщество
Хитро
источник

KV

Kirill Valyavin in PureScript — русскоговорящее сообщество
Ну для этой задачи конкретно оверкилл, можно же просто траверсиблы собрать в список n-ок
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
а как? допустим есть несколько
e0 :: a -> Maybe b
e1 :: b -> Maybe c

...

как вот такое можно записать иначе?

  for_ e0 \v0 ->
   for_ e1 \v1 ->
     for_ e2 \v2 ->
       b v0 v1 v2
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
в реально жизни это превращается в
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
(ну тут, конечно, немного больше проблем, чем просто лестница из for_ :))
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
Vasiliy Yorkin
(ну тут, конечно, немного больше проблем, чем просто лестница из for_ :))
ну не забывай, что /\ это есть Tuple - лишний конструктор
источник

KV

Kirill Valyavin in PureScript — русскоговорящее сообщество
Ну сделать оператор
\t1 t2 -> (/\) <$> toList t1 <*> toList t2
Синтаксис тот же самый будет
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
Kirill Valyavin
Ну сделать оператор
\t1 t2 -> (/\) <$> toList t1 <*> toList t2
Синтаксис тот же самый будет
ну а я что говорил? что Day f f есть liftA2
источник