Size: a a a

2021 June 04

[

[BRM]White Rabbit in Haskell
ну, f может быть монадкой...
А так не понял :/
источник

ЖК

Жук Короед in Haskell
Это же определение Free с точностью до переименовывания! :D
источник

[

[BRM]White Rabbit in Haskell
о
источник

[

[BRM]White Rabbit in Haskell
так вот какая она
источник

[

[BRM]White Rabbit in Haskell
свободная монада
источник

K

Kir in Haskell
Я так себе сделал универсальное AST
newtype Tree fs xs = Tree { raw :: Cofree (Sum fs) (Product xs) }
и немедленно бахнул обходы по нему
источник

ЖК

Жук Короед in Haskell
Cofree страшные слова, я еще таких не знаю :D
источник

[

[BRM]White Rabbit in Haskell
это как кофе
источник

K

Kir in Haskell
Это Free наоборот
источник

[

[BRM]White Rabbit in Haskell
только кофри
источник

K

Kir in Haskell
data Cofree f a = Cofree { a :: a, fa :: f (Cofree a) }
источник

[

[BRM]White Rabbit in Haskell
а для Cotree надо будет использовать Free ?
источник

K

Kir in Haskell
Нет
источник

[

[BRM]White Rabbit in Haskell
:(
источник

K

Kir in Haskell
Cofree - это свободная комонада
источник

ЖК

Жук Короед in Haskell
Ну это я догнал, а вот представить себе такое сложно.
источник

K

Kir in Haskell
Free   f a = mu it. a + f it
Cofree f a = mu it. a * f it
источник

[

[BRM]White Rabbit in Haskell
а в чём прикол? тупо любое количество эффектов?
источник

[

[BRM]White Rabbit in Haskell
А, нет, отмена, я не секу, в чём прикол
источник

[

[BRM]White Rabbit in Haskell
допустим, у нас тип Free Maybe Int
и к нему подходят
Free Nothing
Free Just (Pure 5)
Free Just (Free Nothing)
Free Just (Free Just (Pure 5))
И так далее
источник