![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Я это как-то писал, но напишу ещё раз, бо тема поднялась.
Недостатки явной рекурсии по сравнению с комбинаторами (ага, zip3):
Юный хаскеллист, избегай явной рекурсии!
Ну и ссылочка, куда без неё!
Недостатки явной рекурсии по сравнению с комбинаторами (ага, zip3):
- Рекурсия непонятна (согласен, это субъективное).
- Обычно используется с декомпозицией, нарушая инкапусляцию.
- Всегда используется для работы с элементами, вместо работы с коллекцией (wholemeal programming).
- Цепочка вызовов проще для оптимизации.
- Сложнее нежно мною любимый equational reasoning.
Юный хаскеллист, избегай явной рекурсии!
Ну и ссылочка, куда без неё!
no subject
Date: 2012-12-01 11:11 am (UTC)http://hpaste.org/78589 (http://hpaste.org/78589)
no subject
Date: 2012-12-01 08:38 pm (UTC)no subject
Date: 2012-12-01 10:57 pm (UTC)http://hpaste.org/78604
Data.Functor.Fixedpoint находится в unification-fd, импорт можно заменить на ровно две строчки:
newtype Fix f = Fix { unFix :: f (Fix f) }
cata phi = phi . fmap self . unFix
no subject
Date: 2012-12-02 04:03 am (UTC)