Подтвердить что ты не робот

К какой проблеме хорошо подходит функциональное программирование?

Функциональное программирование, по-видимому, является парадигмой в информатике, которая имеет все больше и больше эхо.

Интересно, какие проблемы лучше решаются с помощью подхода к функциональному программированию, а не с более традиционным объектно-ориентированным подходом.

Спасибо.

4b9b3361

Ответ 1

Функциональное программирование лучше всего подходит для большинства проблем, включая все, что вы обычно используете для объектно-ориентированного программирования, за исключением проблем, требующих хранения большого количества состояний или других побочных эффектов. Помимо этого, FP обрабатывает сложные проблемы гораздо более грациозно, чем ООП, поскольку многие из них исходят из математического фона (начиная с исчисления лямбда). У вас гораздо больше гибкости, чем абстракция и композиция. Объектно-ориентированная программа с большим количеством шаблонов проектирования может быть реорганизована с использованием более функциональных конструкций, которые позволят вам делать то же самое без шаблонных структур, которые создают шаблоны, которые вы пишете. Помимо математики и синтаксического анализа, FP также широко используется в искусственном интеллекте (особенно Lisp).

Ответ 3

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

Ответ 4

Функциональные языки часто используются в математике и статистике.

Ответ 5

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

Ответ 6

Я согласен с Галвегяном -

"Функциональные языки часто используются в математике и статистике".

Однако это не единственное использование. Поскольку функциональные языки программирования становятся более популярными, вы, вероятно, начнете находить бизнес-классы/библиотеки/программное обеспечение, написанные на этих языках.

Ответ 7

Практически все, что имеет много математики.

Ответ 8

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

Ответ 9

Если вы пишете шаблоны на С++, вы работаете на чистом функциональном языке.

Ответ 10

XSLT является примером языка функционального программирования для выполнения преобразований данных или документов, представленных в виде XML - по общему признанию, очень многословного и очень ограниченного. Если я правильно помню, XQuery также является чисто функциональным. Трюки заключаются в том, что без какой-либо концепции глобального состояния они находятся в главной программе для предоставления данных и потребления их результатов. Это помогает сохранять программы XSLT (таблицы стилей) чистыми и многоразовыми, но вам нужно добавить какую-то (императивную) структуру, чтобы использовать их как часть системы обработки общего назначения.

Ответ 11

Основные электронные таблицы можно рассматривать как функциональные программы...:)

Ответ 12

Структуры данных. Пример: Сравните императивную реализацию кучи Fibonacci (часто используемой в качестве очереди приоритетов) с функциональной реализацией. Часто функциональный код будет составлять менее 100 строк кода, тогда как императивная реализация может быть гораздо больше строк кода.