Funkcijsko programiranje: razlika između inačica

Izbrisani sadržaj Dodani sadržaj
SieBot (razgovor | doprinosi)
mNema sažetka uređivanja
Redak 1:
'''Funkcijsko programiranje''' je [[programska paradigma]] koja tretira [[računanje]] kao evaluaciju [[funkcija (matematika)|matematičkih funkcija]] i izbjegava stanje i [[nemutabilni objekt|mutabilne]] podatke. Naglašava primjenu funkcija, kao suprotnost stilu [[imperativno programiranja|imperativnog programiranja]] koji naglašava promjene u [[stanje programa|stanju]].<ref>{{cite journal|last=Hudak|first=Paul|authorlink=Paul Hudak|title=Conception, evolution, and application of functional programming languages|journal=[[Association for Computing Machinery|ACM]] Computing Surveys|volume=21|issue=3|pages=359-411|month=September|year=1989|url=http://www.cs.berkeley.edu/~jcondit/pl-prelim/hudak89functional.pdf}}</ref>
 
Šira koncepcija funkcijskog programiranja jednostavno definira skup zajedničkih briga i tema mjesto popisa distinkcija od ostalih [[paradigma|paradigmi]]. Često se važnima smatraju [[funkcija višeg reda|funkcije višeg reda]] i [[prvorazredna funkcija|prvorazredne funkcije]], [[zatvaranje (računarstvo)|zatvaranja]] i [[rekurzija (računarstvo)|rekurzija]]. Druga uobičajena svojstva funkcijskih programskih jezika su [[kontinuacija|kontinuacije]], [[Hindley-Milner|Hindley-Milner sustavi inference tipova]], nestriktne evaluacijske strategije (uključujući i "[[lijena evaluacija|lijenost]]") te [[monade u funkcijskom programiranju|monade]].
 
Funkcijski jezici uključuju [[APL (programski jezik)|APL]], [[Erlang (programski jezik)|Erlang]], [[Haskell (programski jezik)|Haskell]], [[Lisp (programski jezik)|Lisp]], [[ML (programski jezik)|ML]] i [[Scheme (programski jezik)|Scheme]] (u abecednom poretku).