Funkcijsko programiranje
Funkcijsko programiranje je programska paradigma koja tretira računanje kao evaluaciju matematičkih funkcija i izbjegava stanje i mutabilne podatke. Naglašava primjenu funkcija, kao suprotnost stilu imperativnog programiranja koji naglašava promjene u stanju.[1]
Šira koncepcija funkcijskog programiranja jednostavno definira skup zajedničkih briga i tema mjesto popisa distinkcija od ostalih paradigmi. Često se važnima smatraju funkcije višeg reda i prvorazredne funkcije, zatvaranja i rekurzija. Druga uobičajena svojstva funkcijskih programskih jezika su kontinuacije, Hindley-Milner sustavi inference tipova, nestriktne evaluacijske strategije (uključujući i "lijenost") te monade.
Funkcijski jezici uključuju APL, Erlang, Haskell, Lisp, ML i Scheme (u abecednom poretku).
Funkcijski programski jezici, napose "čisti funkcijski", su često istaknuti u akademskoj zajednici, za razliku od komercijalnog razvoja programske podrške. U drugu ruku, istaknuti funkcijski jezici korišteni u industriji i komercijalnim aplikacijama uključuju Erlang (konkurentne aplikacije),[2], R (statistika)[3], Mathematica (simbolička matematika),[4] Haskell,[5][6] ML,[7] J i K (financijska analiza), te domenski-specifične programske jezike kao što je XSLT.[8][9]
Lambda račun je osnovica većine modela funkcijskog programiranja.
Izvori
- ↑ Hudak, Paul (rujna 1989). "Conception, evolution, and application of functional programming languages". ACM Computing Surveys 21 (3): 359-411. Inačica izvorne stranice arhivirana 20. ožujka 2009.. http://www.cs.berkeley.edu/~jcondit/pl-prelim/hudak89functional.pdf Pristupljeno 9. lipnja 2007.
- ↑ "Who uses Erlang for product development?". Frequently asked questions about Erlang. http://www.erlang.org/faq/t1.html#AEN50 Pristupljeno 27. lipnja 2006. #"The largest user of Erlang is (surprise!) Ericsson. Ericsson uses it to #write software used in telecommunications systems. Many (dozens) projects have #used it, a particularly large one is the extremely scalable AXD301 ATM switch." Other commercial users listed as part of the FAQ include: Nortel, Deutsche Flugsicherung (the German national air traffic control organisation), and T-Mobile.
- ↑ The useR! 2006 conference schedule includes papers on the commercial use of R
- ↑ Department of Applied Math, University of Colorado. "Functional vs. Procedural Programming Language". Inačica izvorne stranice arhivirana 13. studenoga 2007.. http://amath.colorado.edu/computing/mmm/funcproc.html Pristupljeno 28. kolovoza 2006.
- ↑ "Haskell and the Linspire Toolchain". Inačica izvorne stranice arhivirana 14. ožujka 2007.. http://www.galois.com/cufp/ Pristupljeno 9. lipnja 2007.
- ↑ "Why Functional Programming Matters to Credit Suisse". Inačica izvorne stranice arhivirana 14. ožujka 2007.. http://www.galois.com/cufp/ Pristupljeno 9. lipnja 2007.
- ↑ "Caml Trader: Adventures of a Functional Programmer on Wall Street". Inačica izvorne stranice arhivirana 14. ožujka 2007.. http://www.galois.com/cufp/ Pristupljeno 9. lipnja 2007.
- ↑ Dimitre Novatchev. "The Functional Programming Language XSLT - A proof through examples". TopXML. http://www.topxml.com/xsl/articles/fp/ Pristupljeno 27 svibnja
- ↑ David Mertz. "XML Programming Paradigms (part four): Functional Programming approached to XML processing". IBM developerWorks. http://gnosis.cx/publish/programming/xml_models_fp.html Pristupljeno 27 svibnja