wd wp Пошук:

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

Функцыянальнае праграмаванне — парадыгма праграмавання, якая разглядае вылічэнні як разлікі матэматычных функцый, і пазбягае становішчаў і зменных дадзеных. Адносіцца да дэкларатыўнай парадыгмы праграмавання, гэта азначае, што праграмы складаюцца з выразаў. У функцыянальным кодзе выхадное значэнне залежыць толькі ад аргументаў на ўваходзе функцыі, таму пры выкліку функцыі 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. http://www.dbnet.ece.ntua.gr/~adamo/languages/books/p359-hudak.pdf.
  2. Who uses Erlang for product development?(нявызн.). Frequently asked questions about Erlang. Праверана 5 жніўня 2007.
  3. Armstrong, Joe (June 2007). “A history of Erlang” in Third ACM SIGPLAN Conference on History of Programming Languages.. Праверана 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.

Крыніцы

Тэмы гэтай старонкі (2):
Катэгорыя·Старонкі з няправільным сінтаксісам спасылак на крыніцы
Катэгорыя·Парадыгмы праграмавання