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