Или нет? У меня есть сомнения, так как во всех коллективах принято писать код согласно определенным конвенциям. Человек, который хочет применить ФП в обычных проектах на примитивных императивных языках без особых средств ФП скорее всего имеет в распоряжении
- Рекурсия (если есть надежда на хвостовую)
 - Выполнение операций на основе предикатов или трансформирущих объектов.
 - Принятие решений на основе конфигурирующих данных. Как бы точнее выразиться? Например построение небольшого интерпретатора, из нескольких команд.
 - Иммутабельность чем больше тем лучше
 - Попытка работать с объектами как с функциями (частичное применение, или создание предикатов как в п. 2)
 - Еще что-то забыл, дополняйте
 
Но в большинстве коллективов (С, С++, Java) эти приемы будут восприняты как странные, и более того вообще быдлокодом. И на этом языке он и есть быдлокодом в некоторой мере. Тоесть концепции нормальные, но в соединение со средствами которые делают их простыми и краткими. А на вышеперечисленых ЯП лишь гора if-ов и 100500 объектов с нетривиальным состоянием - конвенция.
Вывод: изучение ФП - расширение кругозора, открытие для себя основаных на ФП инструментов. Не повод его пихать везде или гнуть в эту сторону палку в императивном коде как делают некоторые упоротые.
Ваше мнение?






