Перайсці да зместу

Функцыянальнае праграмаванне

З Вікіпедыі, свабоднай энцыклапедыі

Функцыянальнае праграмаванне — парадыгма праграмавання, якая разглядае вылічэнні як разлікі матэматычных функцый, і пазбягае станаў і зменных даных. Адносіцца да дэкларатыўнай парадыгмы праграмавання, гэта азначае, што праграмы складаюцца з выразаў. У функцыянальным кодзе выхадное значэнне залежыць толькі ад аргументаў на ўваходзе функцыі, таму пры выкліку функцыі 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. Архівавана з арыгінала (PDF) 31 студзеня 2016. Праверана 7 кастрычніка 2015. Архіўная копія(недаступная спасылка). Архівавана з першакрыніцы 31 студзеня 2016. Праверана 7 кастрычніка 2015.Архіўная копія(недаступная спасылка). Архівавана з першакрыніцы 31 студзеня 2016. Праверана 7 кастрычніка 2015.
  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(недаступная спасылка). Архівавана з першакрыніцы 13 лістапада 2007. Праверана 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.
  • Савіцкі М. Тлумачальны слоўнік па інфарматыцы: / Мікола Савіцкі. Мн.: Энцыклапедыкс. 2009. ISBN 978-985-6742-83-8