Функцыянальнае праграмаванне: Розніца паміж версіямі
[дагледжаная версія] | [дагледжаная версія] |
Няма тлумачэння праўкі |
др Mikalai Udodau перанёс старонку Функцыйнае праграмаванне у Функцыянальнае праграмаванне |
(Няма розніцы)
|
Версія ад 22:22, 29 сакавіка 2016
Функцыйнае праграмаванне — парадыгма праграмавання, якая разглядае вылічэнні як разлікі матэматычных функцый, і пазбягае становішчаў і зменных дадзеных. Адносіцца да дэкларатыўнай парадыгмы праграмавання, гэта азначае, што праграмы складаюцца з выразаў. У функцыйным кодзе выхадное значэнне залежыць толькі ад аргументаў на ўваходзе функцыі, таму пры выкліку функцыі f двойчы з тым жа значэннем аргумента х будзе атрыманы той жа вынік f(x) кожны раз. Ліквідацыя пабочных эфектаў, г.зн. зменаў становішча, якія не залежаць ад параметраў функцыі, можа зрабіць нашмат лягчэйшым разуменне і прадказанне паводзін праграмы, што з'яўляецца адным з ключавых матываў для развіцця функцыйнага праграмавання.
Функцыйнае праграмаванне мае свае карані ў лямбда-злічэнні, фармальнай сістэме, распрацаванай у 1930-я гады для даследаванняў вылічальнасці, праблемы развязвальнасці, вызначэння функцый, прымянення функцый, і рэкурсіі.[1]
У асноўным увагу на функцыйныя мовы праграмавання, асабліва «чыста функцыйныя», звяртаюць акадэмічныя даследчыкі, а не распрацоўшчыкі камерцыйнага праграмнага забеспячэння. Тым не менш, функцыйны стыль праграмавання падтрымліваецца спецыялізаванымі мовамі, сярод якіх Erlang (паралельныя праграмы)[2] [3], R (статыстыка)[4], Mathematica (сімвальныя вылічэнні)[5], J і K (фінансавы аналіз), і інш.
Праграмаванне ў функцыйным стылі таксама магчымае ў мовах, якія не прызначаны спецыяльна для функцыйнага праграмавання. Напрыклад, імператыўная мова праграмавання Perl з'яўляецца прадметам кнігі, якая апісвае, як прымяніць канцэпцыі функцыйнага праграмавання.[6] C# 3.0 і Java 8 дадалі канструкцыі, якія робяць праграмаванне ў функцыйным стылі больш натуральным.
Зноскі
- ↑ Hudak, Paul (September 1989). "Conception, evolution, and application of functional programming languages" (PDF). ACM Computing Surveys. 21 (3): 359–411. doi:10.1145/72551.72554.
- ↑ Who uses Erlang for product development? . Frequently asked questions about Erlang. Праверана 5 жніўня 2007.
- ↑ Armstrong, Joe (June 2007). A history of Erlang. Third ACM SIGPLAN Conference on History of Programming Languages. San Diego, California. Праверана 2009-08-29.
- ↑ Department of Applied Math, University of Colorado. Functional vs. Procedural Programming Language . Праверана 28 жніўня 2006.
- ↑ Wolfram Language Guide: Functional Programming (2015). Праверана 24 жніўня 2015.
- ↑ Dominus, Mark J. (2005). Higher-Order Perl. Morgan Kaufmann. ISBN 1-55860-701-3.