?

Log in

No account? Create an account
Шутка про ду оказалась неожиданно продуктивным инсайтом. Некоторые… - Дважды мудак — ЖЖ [entries|archive|friends|userinfo]
Декларативное рулит

Site Meter

[ website | Мой сайт ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

[окт. 2, 2017|23:21 pm]
Andy Melnikov
Шутка про ду оказалась неожиданно продуктивным инсайтом. Некоторые ячейки было непонятно, как заполнять, и я использовал аналогии

\x -> f $ g $ x = f . g
\x -> f <$> g <$> x = f ??? g


Ну то есть если . это ValueComposition - то ??? это явно хороший претендент на FunctorComposition

Cоответственно $ получается аналогична <$>.

Но осталось непонятным, что же такое ApplicativeApplication и ApplicativeComposition.

Для прояснения я полез читать статью по свободному аппликативу. По ячейкам таблицы не прояснилось, но зато оказалось, что аппликатив - это такое дерево
data Tree c
  = Leaf c
  | Decorate (a -> c) (Tree a)
  | Join (a -> b -> c) (Tree a) (Tree b)
Ну, я слукавил немного и на самом деле у нас GADT, такое полиморфно рекурсивное дерево (a и b экзистенциально квантифицированы):

data FreeApp c where
  Leaf :: c -> FreeApp c
  Decorate :: (a -> c) -> FreeApp a -> FreeApp c
  Join :: (a -> b -> c) -> FreeApp a -> FreeApp b -> FreeApp c
В таком варианте труднее видно дерево, зато легче видно, что Leaf, Decorate и Join - это pure, fmap и liftA2 соответственно.

Трассировать это дерево то ещё удовольствие, поскольку с элементами нельзя ничего сделать, кроме как продекорировать и соединить попарно.
СсылкаОтветить

Comments:
[User Picture]From: maxim
2017-10-05 11:29 pm
Свободные монады — инициальные объекты.
Монады — их F-алгебры.
(Ответить) (Thread)
[User Picture]From: nponeccop
2017-10-05 11:32 pm
Котлетка™
(Ответить) (Parent) (Thread)
[User Picture]From: maxim
2017-10-05 11:36 pm
Канхфєта тузік очєнь ніхуйова :-)
(Ответить) (Parent) (Thread)
[User Picture]From: nponeccop
2017-10-06 07:33 pm
https://arxiv.org/pdf/1403.0749.pdf - там же аппликативы
(Ответить) (Parent) (Thread)
[User Picture]From: maxim
2017-10-08 06:19 pm
Мультифункторы, ага, почитаю
(Ответить) (Parent) (Thread)