Size: a a a

2021 June 18

ЗП

Зигохистоморфный Пре... in Haskell
почему?
источник

NI

Nick Ivanych in Haskell
Самое время дать ссылки.
источник

к

кана in Haskell
Foldable это про конвертацию в список, собственно и свертка будет списка, поэтому вся структура забудется при свертке

а уже даже катаморфизм структуру знает прекрасно
источник

к

кана in Haskell
ну простой пример, как фолдаблом свернуть

data X a = A a | B a

обратно в то же самое значение что и было?
источник

NI

Nick Ivanych in Haskell
Ну я попытался дать аналогии к чему-то известному и понятному.
источник

к

кана in Haskell
собственно я считаю что это как раз у фолдабла максимально кривое название, и никакого отношения к свертке фолдабл не имеет
источник

к

кана in Haskell
я бы назвал фолдабл как-нибудь типа

class AsList f where
 toList :: f a -> [a]

или Universe, по аналогии с юниплейтом
источник

ЗП

Зигохистоморфный Пре... in Haskell
если бы там только foldr был, то это как раз cata, но только в другой сигнатуре
источник

к

кана in Haskell
да что ты говоришь
источник

к

кана in Haskell
ну вот давай сделаем наш Foldable кастомный где есть только foldr
источник

к

кана in Haskell
class Foldable f where
 foldr :: b -> (a -> b -> b) -> f a -> b

data X a = A a | B a
instance Foldable X where
 foldr n c (A a) = c a n
 foldr n c (B b) = c b n

сделай теперь мне через этот foldr функцию

idX :: A a -> A a

idX (A 1) == A 1
idX (B 1) == B 1
источник

к

кана in Haskell
через cata это уже как раз тривиально делается, а раз Foldable с foldr это как раз cata, то жду от тебя решения
источник

ЗП

Зигохистоморфный Пре... in Haskell
ладно, раз ты такой дотошный, то cata это более общее, чем foldr и закрывает его возможности полностью
источник

к

кана in Haskell
про что и речь, Foldable никакого отношения к свертке структуры под аргументом не имеет, он сворачивает только и только списки, а не то что там у него аргументом указано
источник

к

кана in Haskell
худший нейминг просто
источник

к

кана in Haskell
тут даже нет оправдания как с Monad/Applicative/Monoid, это просто какой-то чувак решил выпендриться и назвать класс "конвертируемый в список" как Foldable, чтобы новичкам было сложнее понимать
источник

ЗП

Зигохистоморфный Пре... in Haskell
был один разговор, что Foldable нафиг не нужен и их перекрывает RS полностью и более правильно оставить его
источник

ЗП

Зигохистоморфный Пре... in Haskell
так то можно и про Traversable сказать
источник

к

кана in Haskell
с RS просто проблемка будут, что в ghc нет нормальных инструментов для генерации базового функтора, только TH
источник

MK

Maxim Koltsov in Haskell
Его линзы перекрывают
источник