Функциональное программирование и нефункциональное программирование
Что такое функциональное 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 .NETSystem.Func
иSystem.Action
делают функции высшего functional-programming порядка доступными в C#. Хотя functional каррирование в C# нецелесообразно, функции, которые functional принимают другие функции programming-paradigms в качестве аргументов, являются functional-programming общими, например функция glossaryParallel.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
Функциональное программирование и нефункциональное программирование
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.