Funkcijsko programiranje

Izvor: Wikipedija
Jump to navigation Jump to search

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 VE | uredi]

  1. Hudak, Paul (September 1989). "Conception, evolution, and application of functional programming languages". ACM Computing Surveys 21 (3): 359-411
  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. pristupljeno 28. kolovoza 2006.
  5. Haskell and the Linspire Toolchain.
  6. Why Functional Programming Matters to Credit Suisse.
  7. Caml Trader: Adventures of a Functional Programmer on Wall Street.
  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