http://lomeo.livejournal.com/ ([identity profile] lomeo.livejournal.com) wrote in [personal profile] lomeo 2009-02-03 07:41 pm (UTC)

Насчёт того, что foldr это не совсем катаморфизм, т.к. принимает два аргумента - не согласен. Катаморфизм применяет стрелку, а не функцию, а как мы её расписываем - дело наше. Я не видел такую запись катаморфизма, как у Джонса, но не один раз встречал

φ . in

где φ (стрелка) представляется в виде тапла функций. Подразумевается, что (f,g) (x,y) = (f x, g y). Впрочем, из одного можно получить другое, но, что важнее, foldr удобнее cata. Именно потому что скрывает case.

Но насчёт either, maybe, unfoldr и т.д. я соглашусь - лямбды выглядят не очень. Но если у нас pointfree, при чём разумный, без ужасных (.).(.), то эти комбинаторы спасают. Именно потому, что поднимают уровень абстракции, и частично понятность кода.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting