?

Log in

No account? Create an account
Почему Prelude говно - Дважды мудак [entries|archive|friends|userinfo]
Декларативное рулит

Site Meter

[ website | Мой сайт ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Почему Prelude говно [сент. 30, 2017|19:38 pm]
Andy Melnikov
[Tags|, , ]

Ввиду наличия 26+ разных NIH-прелюд хорошо бы создать свою 27-ю перечислить недостатки, настоящие или мнимые, которые эти прелюды исправляют или "исправляют".

Потребление процессора и памяти:

- String
- Array

Семантика, недружественная к нубам:

- lazy IO (readFile . lines, interact-подобный хеллоувордизм)
- foldl без ', нестрогие sum/product

Пуризмы:

- "настоящие" частичные функции (head vs headMay)
- "функции-исключения" притворяющиеся частичными (error, undefined...)

Непереносимость:

- бэкпортирование фич новой base в старые GHC

Бойлерплейт:

- неэкспорт нужных штук типа (>=>)
- одни и те же имена (*.map == fmap, IsMap, sequenceA == sequenceM)

Недостаточно ортогональный и алгебраический дизайн:
- numeric tower
- algebraic tower
- отсутствие единообразности - например, есть maybe и either, но нет bool

На этом этапе мне надоело, продолжим завтра
СсылкаОтветить