Programmatura functionalis in scientia computatrali est paradigma programmandi, modus structurae et elementorum programmatum computatralium aedificandorum, qui computationem habet aestimationem functionum mathematicarum, et data statum mutantem et data mutabilia evitat. Quae est paradigma programmaturae declarativae, quod significat programmatura per expressiones efficitur. In codice functionali, exitialis functionis aestimatio dependet solum de argumentis quae in functionem imponuntur; ergo functio f bis appellata per eandem aestimationem pro argumento x eundem exitum f(x) quoque tempore generabit. Deletis effectibus adiunctis (mutatibus status quae in inputs functionum non dependent), mores programmatis facilius intelleguntur et praedicuntur, quod est unum ex propositis maximi momenti programmaturae functionalis.

Ioannes McCarthy, qui Lisp evolvit, in congressu academico anno 2006 photographatus.

Programmatura functionalis in calculo lambda condita est, in systemate formali annis 1930 evoluto ad computabilitatem, Entscheidungsproblem, definitionem functionum, adhibitionem functionum, et recursionem investigandam. Multae functionales linguae programmandi videri possunt lima calculi lambda. Programmatura logica, aliud paradigma programmaturae declarativum bene notum in relationibus conditur.[1]

Contra, programmatura imperativa statum mutat per iussa in lingua fontis, quorum simplicissimum est mera attributio. Programmatura imperativa functiones nihilominus habet, non sensu mathematico, sed sensu ad subordines pertinente. Eis esse possunt effectus laterales qui aestimationem status programmatis mutare possunt. Functiones aestimationibus redituris carentes ergo significationem habent. Quam ob causam, pelluciditate referentiali carent; hoc est, eadem expressio linguae varias aestimationes temporibus variis efficere potest, statum programmatis exsecutentis monstrantes.[2]

Linguae programmaturae functionalis, praecipue linguae pure functionales sicut Hope et Rex, plerumque in academia expressae sunt, potius quam in progressu programmaturae commercialis. Functionales autem linguae prominentes sicut Common Lisp, Scheme,[3][4][5][6] Clojure,[7][8] lingua Wolframiana [9] (etiam Mathematica appellata), Racket, Erlang,[10][11][12] OCaml,[13][14] Haskell,[15][16] et F#[17][18] in adhibitionibus industrialibus et commercialibus a variissimis organizationibus adhibitae sunt. Programmatura functionalis etiam in nonnullis linguis programmandi in dominiis propriis, sicut J, K, Q ex Kx Systems (analysis pecuniaria), R (statistica), XQuery/XSLT (XML),[19][20] et Opal sustinetur. Linguae declarativae in dominio propriae late notae, sicut SQL et Lex/Yacc, nonnullis programmaturae functionalis elementis utuntur, praecipue cum aestimationes mutabiles evitent.[21]

Programmare modo functionali etiam effici potest in linguis pro programmatura functionali non praecipue designatis. Exempli gratia, Perl, lingua programmandi imperativa, est res libri qui rationem notionum programmandi functionalis adhibendarum enarrat.[22] Hoc etiam ad PHP linguam programmandi pertinet.[23] Linguae C# 3.0 et Java 8 constructa ad meliorem faciendum modum functionalem addiderunt.

Lingua Julia praebet facultates programmandi functionalis. Casus iucundus est Scala, quae modo functionali saepe scribitur, sed praesentia effectuum lateralium et status mutabilis eam in regione cana inter linguas imperativam et functionalem ponunt.

Notae recensere

  1. Hudak 1989.
  2. Hudak 1989.
  3. Clinger 1987.
  4. Hartheimer 1987.
  5. Kidd 2007.
  6. Cleis 2006.
  7. UseR 2006.
  8. Chambers.
  9. Wolfram 2015.
  10. Erlang.
  11. Armstrong 2007.
  12. Larson 2009:48.
  13. Minsky 2008.
  14. Leroy 2007.
  15. Haskell.
  16. Hudak 2007.
  17. Mansell 2008.
  18. Peake 2009.
  19. Novatchev.
  20. Mertz.
  21. Chamberlin et Boyce 1974.
  22. Dominus 2005.
  23. Holywell 2014.

Bibliographia recensere

Nexus externi recensere