Реальные примеры функциональных духов программирования, применяемых в императивных языках? - PullRequest
4 голосов
/ 08 июля 2011

Большинство людей говорят, что даже функциональное программирование с меньшей вероятностью принесет вам работу, вы можете стать лучшим программистом, работающим с императивом / выходным, изучив его.

Для меня это в основном написание функций "не член, не друг", которые не имеют побочных эффектов. Но я не мог придумать больше примеров, когда функциональное программирование может эффективно применяться в императивных языках, потому что обходить отсутствие функций в языках часто слишком громоздко.

Так, каковы еще ( специфические ) примеры / методы, которые вы фактически применили на нефункциональных языках, которые были вдохновлены функциональным программированием?

Другой из моего собственного опыта

Это довольно абстрактно, но из-за отсутствия «объектов» в большинстве языков FP, культура там склоняется к строгому проектированию структуры данных. Обычно в языках ООП, потому что заполнение дополнительной переменной в классе слишком просто, вещи, как правило, портятся довольно быстро. Хотя то же самое можно сделать, используя синтаксис записей OCaml и Haskell, такой подход почему-то неуместен в FP.

Ответы [ 4 ]

2 голосов
/ 22 июля 2011

Преобразование данных

Мой опыт размышлений о том, как решить проблему функционально, заставляет вас задуматься о том, какие данные преобразуются в какие, а не в состояние Нужно изменить, чтобы сохранить эту чертову работу ...

Думая о проблемах, поскольку преобразования заставляют их казаться разными сами по себе - что приводит к различным и, скорее всего, более элегантным решениям.

Обновление : в c ++ есть заголовок , а std :: transform в .

0 голосов
/ 22 июля 2011

Функции массива JavaScript нового поколения, фильтра, отображения, каждого, некоторых, Reduce и ReduRight основаны на функциональности.

0 голосов
/ 22 июля 2011

Функциональная Java уже упоминалась в комментариях, но в Apache Commons Collections также есть некоторые функциональные вещи. См. Пакет org.apache.commons.collections.functors .

0 голосов
/ 08 июля 2011

Большинство методов Ruby Enumerable основаны на функциях высшего порядка из функционального программирования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...