Настроение: | hungry |
Музыка: | Los Hermanos - A Flor |
ООП vs ФП
ООП держится на трёх основаниях - инкапсуляции, наследовании и полиморфизме.
Правильно ли говорить что ФП это рекурсия, иммутабельность и ленивость?
Вопрос не праздного любопытства, кстати, а практики.
Насколько такая система полна и пригодна. Сейчас любой ООП-щный паттерн можно свести к SOLID Роберта Мартина. Т.е. в рамках этих критериев для данного языка программирования хороший паттерн всегда достигает некоторой оптимальности. Сам же SOLID рождается в рамках инкапсуляции, наследования и полиморфизма. Кстати не думаю что SOLID уникален, но он вполне удобен. Вероятно можно придти и к другим базисам.
Реально ли создать на основе только рекурсии, иммутабельности и ленивости что-то вроде SOLID'а для функциональных языков? Т.е. что бы задачи проектирования сводились к оптимизации конструкций в рамках конкретных критериев отвечающих функциональным языкам программирования.
Пока что ответа я не знаю.