Funkcijsko programiranje

Izvor: Wikipedija

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[uredi | uredi kôd]

  1. Hudak, Paul. Rujan 1989. Conception, evolution, and application of functional programming languages (PDF). ACM Computing Surveys. 21 (3): 359–411. Inačica izvorne stranice (PDF) arhivirana 20. ožujka 2009. Pristupljeno 9. lipnja 2007.
  2. Who uses Erlang for product development?. Frequently asked questions about Erlang. 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.
  3. The useR! 2006 conference schedule includes papers on the commercial use of R
  4. Department of Applied Math, University of Colorado. Functional vs. Procedural Programming Language. Inačica izvorne stranice arhivirana 13. studenoga 2007. Pristupljeno 28. kolovoza 2006.
  5. Haskell and the Linspire Toolchain. Inačica izvorne stranice arhivirana 14. ožujka 2007. Pristupljeno 9. lipnja 2007.
  6. Why Functional Programming Matters to Credit Suisse. Inačica izvorne stranice arhivirana 14. ožujka 2007. Pristupljeno 9. lipnja 2007.
  7. Caml Trader: Adventures of a Functional Programmer on Wall Street. Inačica izvorne stranice arhivirana 14. ožujka 2007. Pristupljeno 9. lipnja 2007.
  8. Dimitre Novatchev. The Functional Programming Language XSLT - A proof through examples. TopXML. Pristupljeno 27. svibnja 2006.
  9. David Mertz. XML Programming Paradigms (part four): Functional Programming approached to XML processing. IBM developerWorks. Pristupljeno 27. svibnja 2006.