Читая эту классическую статью, я зациклился на параморфизмах. К сожалению, раздел довольно тонкий, и на странице Википедии ничего не говорится.
Мой перевод Haskell:
para :: (a -> [a] -> b -> b) -> b -> [a] -> b
para f base = h
where
h [] = base
h (x:xs) = f x xs (h xs)
Но я не понимаю, что у меня нет интуиции для сигнатуры типа или желаемого результата.
Какой параморфизм и какие полезные примеры в действии?
Да, я видел эти вопросы, но они не охватывают параморфизмы напрямую и указывают только на ресурсы, которые могут быть полезны в качестве ссылок, но не как учебные материалы.