Функцыянальнае праграмаванне: Розніца паміж версіямі

З Вікіпедыі, свабоднай энцыклапедыі
[дагледжаная версія][дагледжаная версія]
Paganetz (размовы | уклад)
Няма тлумачэння праўкі
(Няма розніцы)

Версія ад 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 дадалі канструкцыі, якія робяць праграмаванне ў функцыйным стылі больш натуральным.

Зноскі

  1. 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.
  2. Who uses Erlang for product development?. Frequently asked questions about Erlang. Праверана 5 жніўня 2007.
  3. Armstrong, Joe (June 2007). A history of Erlang. Third ACM SIGPLAN Conference on History of Programming Languages. San Diego, California. Праверана 2009-08-29.
  4. Department of Applied Math, University of Colorado. Functional vs. Procedural Programming Language. Праверана 28 жніўня 2006.
  5. Wolfram Language Guide: Functional Programming (2015). Праверана 24 жніўня 2015.
  6. Dominus, Mark J. (2005). Higher-Order Perl. Morgan Kaufmann. ISBN 1-55860-701-3.