Функциональное программирование и нефункциональное программирование

Что такое функциональное paradigms программирование

Сегодня широко glossary используются два разных определения functional-programming «функционального программирования»:

Более paradigms старое определение (происходящее programming-paradigms из Лиспа) заключается в том, что glossary функциональное программирование programming-paradigms - это программирование с programming-paradigms использованием функций первого programming-paradigms класса, то есть где функции paradigms обрабатываются как любое programming-paradigms другое значение, поэтому paradigms вы можете передавать функции glossary в качестве аргументов другим programming-paradigms функциям, а функция может functional возвращать функции среди programming-paradigms своих возвращаемые значения. Это paradigms приводит к использованию glossary функций высшего порядка, таких paradigms как map и reduce (вы, возможно, слышали glossary о mapReduce как об отдельной операции, широко functional-programming используемой Google и, что functional неудивительно, она является glossary близкой родственницей!). Типы paradigms .NET System.Func и System.Action делают функции высшего functional-programming порядка доступными в C#. Хотя functional каррирование в C# нецелесообразно, функции, которые functional принимают другие функции programming-paradigms в качестве аргументов, являются functional-programming общими, например функция glossary Parallel.For.

Более молодое определение functional (популяризированное Haskell) заключается programming-paradigms в том, что функциональное programming-paradigms программирование также направлено functional на минимизацию и контроль glossary побочных эффектов, включая paradigms мутации, то есть написание programming-paradigms программ, которые решают paradigms проблемы путем составления glossary выражений. Это чаще называют glossary «чисто функциональным программированием». Это programming-paradigms стало возможным благодаря paradigm совершенно разным подходам functional к структурам данных, которые glossary называются «чисто функциональными functional структурами данных». Одна glossary из проблем заключается в programming-paradigms том, что перевод традиционных functional-programming императивных алгоритмов на paradigms использование чисто функциональных functional структур данных обычно снижает programming-paradigms производительность в 10 раз. Haskell functional-programming - единственный сохранившийся paradigms чисто функциональный язык glossary программирования, но его programming-paradigms концепции вошли в массовое functional-programming программирование с помощью functional таких библиотек, как Linq на functional .NET.

где бы я хотел использовать programming-paradigms это вместо нефункционального functional программирования

Везде. Лямбды paradigm в C# теперь продемонстрировали paradigm основные преимущества. В programming-paradigms C++ 11 есть лямбды. Сейчас glossary нет оправдания, чтобы не glossary использовать функции высшего paradigms порядка. Если вы можете использовать programming-paradigms такой язык, как F #, вы также paradigm выиграете от вывода типов, автоматического functional-programming обобщения, каррирования и paradigms частичного применения (а paradigms также от множества других functional языковых функций!).

Правильно programming-paradigms ли я полагаю, что C - нефункциональный paradigms язык программирования?

Да. C programming-paradigms - процедурный язык. Однако paradigm вы можете получить некоторые functional преимущества функционального programming-paradigms программирования, используя functional-programming указатели на функции и void * в glossary C.

functional-programming

paradigms

glossary

2022-09-19T23:24:29+00:00
Вопросы с похожей тематикой, как у вопроса:

Функциональное программирование и нефункциональное программирование