Programmatio 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 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.Hudak 1989.

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.Hudak 1989.

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,Clinger 1987.
Hartheimer 1987.Kidd 2007.Cleis 2006. Clojure,UseR 2006.Chambers. lingua Wolframiana Wolfram 2015. (etiam Mathematica appellata), Racket, Erlang,Erlang.Armstrong 2007.Larson 2009:48. OCaml,Minsky 2008.Leroy 2007. Haskell,Haskell.Hudak 2007. et F#Mansell 2008.Peake 2009. 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),Novatchev.Mertz. 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.Chamberlin et Boyce 1974.

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.Dominus 2005. Hoc etiam ad PHP linguam programmandi pertinet.Holywell 2014. 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