Programmatio functionalis

[thumb|[Ioannes McCarthy, qui Lisp evolvit, in congressu academico anno 2006 photographatus.]]

 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 programmationis declarativae, quod significat programmationem per expressiones effici. 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 programmationis functionalis.

Programmatio 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. Programmatio logica, aliud paradigma programmationis declarativum bene notum in relationibus conditur.

Contra, programmatio imperativa statum mutat per iussa in lingua fontis, quorum simplicissimum est mera attributio. Programmatio 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.

Linguae programmationis functionalis, praecipue linguae pure functionales sicut Hope et Rex, plerumque in academia expressae sunt, potius quam in progressu programmationis commercialis. Functionales autem linguae prominentes sicut Common Lisp, Scheme,
 Clojure, lingua Wolframiana  (etiam Mathematica appellata), Racket, Erlang, OCaml, Haskell, et F# in adhibitionibus industrialibus et commercialibus a variissimis organizationibus adhibitae sunt. Programmatio functionalis etiam in nonnullis linguis programmandi in dominiis propriis, sicut 
J, K, Q ex Kx Systems (analysis pecuniaria), R (statistica), XQuery/XSLT (XML), et Opal sustinetur. Linguae declarativae in dominio propriae late notae, sicut SQL et Lex/Yacc, nonnullis programmationis functionalis elementis utuntur, praecipue cum aestimationes mutabiles evitent.

Programmare modo functionali etiam effici potest in linguis pro programmatione functionali non praecipue designatis. Exempli gratia, Perl, lingua programmandi imperativa, est res libri qui rationem notionum programmandi functionalis adhibendarum enarrat. Hoc etiam ad PHP linguam programmandi pertinet. 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 
## Bibliographia 
* Abelson, Hal, et Gerald Jay Sussman. 1985. *Structure and Interpretation of Computer Programs.* Cantabrigiae Massachusettae: MIT Press.
* Armstrong, Joe. 2007. A history of Erlang. *Third ACM SIGPLAN Conference on History of Programming Languages.* Didacopoli.
* Chamberlin, Donald D., et Raymond F. Boyce. 1974. SEQUEL: A structured English query language. *Proceedings of the 1974 ACM SIGFIDET,* 249–264.
* Chambers, John M. 1998. *Programming with Data: A Guide to the S Language.* Springer Verlag. ISBN 978-0-387-98503-9.
* Cleis, Richard. 2006. "Scheme in Space." CUFP.
* Clinger, Will. 1987. MultiTasking and MacScheme. *MacTech* 3(12).
* Cousineau, Guy, et Michel Mauny. 1998. *The Functional Approach to Programming.* Cantabrigiae: Cambridge University Press.
* Curry, Haskell Brooks, Robert Feys, et William Craig. 1958. *Combinatory Logic*. Vol. I. Amstelodami: North-Holland Publishing Company.
* Curry, Haskell B., J. Roger Hindley, et Jonathan P. Seldin. 1972. *Combinatory Logic.* Vol. 2. Amstelodami: North Holland. ISBN 0-7204-2208-6.
* Dominus, Mark Jason. 2005. *Higher-Order Perl.* Morgan Kaufmann.
* Dominus, Mark J. 2005. *Higher-Order Perl.* Morgan Kaufmann. ISBN 1-55860-701-3.
* EDF Researchers. 2011. Sim-Diasca: a large-scale discrete event concurrent simulation engine in Erlang.
* Erlang. Who uses Erlang for product development? Frequently asked questions about Erlang. FAQ.
* Felleisen, Matthias, Robert Findler, Matthew Flatt, et Shriram Krishnamurthi. 2001. *How to Design Programs.* Cantabrigiae Massachusettae: MIT Press. 
* Graham, Paul. 1996. *ANSI Common LISP.* Englewood Cliffs Novae Caesareae: Prentice Hall.
* Hartheimer, Anne. 1987. Programming a Text Editor in MacScheme+Toolsmith. *MacTech* 3(1).
* Haskell. Haskell in industry. *Haskell Wiki.*
* Holywell, Simon. 2014. *Functional Programming in PHP.* php[architect] [sic]. ISBN 978-1-940111-05-6.
* Hudak, Paul. 1989. Conception, evolution, and application of functional programming languages. *Association for Computing Machinery Computing Surveys* 21(3):359–411. PDF. doi:10.1145/72551.72554.
* Hudak, Paul, J. Hughes, S. P. Jones, et P. Wadler. 2007. A history of Haskell: being lazy with class. Third ACM SIGPLAN Conference on History of Programming Languages, Didacopoli, Iunio. doi:10.1145/1238844.1238856.
* Kidd, Eric. 2007. *Terrorism Response Training in Scheme.* CUFP 2007.
* Larson, Jim. 2009. Erlang for concurrent programming. *Communications of the ACM* 52(3). doi:10.1145/1467247.1467263.
* Leroy, Xavier. 2007. Some uses of Caml in Industry. CUFP. PDF.
* MacLennan, Bruce J. 1990. *Functional Programming: Practice and Theory.* Reading Massachusettae: Addison-Wesley. ISBN 0-201-13744-5.
* Mansell, Howard. 2008. *Quantitative Finance in F#.* CUFP.
* Mertz, David. XML Programming Paradigms (part four): Functional Programming approached to XML processing. *IBM developerWorks.*
* Minsky, Yaron, et Stephen Weeks. 2008. Caml Trading — experiences with functional programming on Wall Street.*Journal of Functional Programming* 18(4):553–564. doi:10.1017/S095679680800676X.
* Novatchev, Dimitre. The Functional Programming Language XSLT: A proof through examples. *TopXML.*
* O'Sullivan, Brian, Don Stewart, et John Goerzen. 2008. *Real World Haskell.* O'Reilly.
* Peake, Alex. 2009. *The First Substantial Line of Business Application in F#.* CUFP.
* Pratt, Terrence W., et Marvin V. Zelkowitz. 1996. *Programming Languages: Design and Implementation.* Ed. 3a. Englewood Cliffs Novae Caesareae: Prentice Hall.
* Racket. State-Based Scripting in Uncharted 2. PDF.
* Salus, Peter H. 1998. *Functional and Logic Programming Languages.* Handbook of Programming Languages, 4. Indianapoli: Macmillan Technical Publishing.
* Spiewak, Daniel. *Implementing Persistent Vectors in Scala.* 
* Thompson, Simon. 1996. *Haskell: The Craft of Functional Programming.* Harlow Angliae: Addison-Wesley Longman Limited.
* *Wolfram Language Guide: Functional Programming.* 2015.

## Nexus externi 
* Akhmechet, Slava.2006. "Functional Programming For The Rest of Us," www.defmacro.org
* Ford, Neal. 2012. "Functional thinking: Why functional programming is on the rise," www.ibm.com
* Mertz, David. *Functional programming in Python*: pars 1; pars 2; pars 3

Categoria:Paradigmata programmandi