You are on page 1of 8

Petlja u Haskelu

Funkcionalno programiranje u Haskell-u

U Haskell-u ne koristimo tradicionalne petlje koje se nalaze u


imperativnim jezicima. Umesto toga, za iteraciju(ponavljanje komande u
programu) koristimo rekurziju, funkcije višeg reda i druge
funkcionalne programske konstrukcije.
U Haskelu, rekurzija služi kao osnovni mehanizam za postizanje
iteracije. To uključuje funkciju koja sama sebe poziva sa izmenjenim
parametrima.
U datom primeru definišemo faktorijalnu funkciju pomoću rekurzije.
Osnovni slučaj (faktorijal 0 = 1) obezbeđuje da se rekurzija zaustavi,
sprečavajući beskonačnu petlju. Haskelov naglasak na matematičkoj
eleganciji je očigledan u rekurzivnoj definiciji.
Funkcije višeg
reda

Haskell prihvata
funkcije višeg reda,
koje preuzimaju
funkcije kao argumente
ili funkcije povratka.
Ove funkcije,
uključujući mapu,
filter i foldl,
apstrahuju uobičajene
obrasce iteracije,
čineći kod modularnijim
i izražajnijim.
Razumevanje lista

Razumevanje lista obezbeđuje sintaksu za generisanje lista. One su


slične razumevanju skupa u matematici i nude ekspresivan način za
kreiranje novih lista na osnovu postojećih.
Monade i sekvenca "do"

Haskell koristi monade, koncept iz


teorije kategorija, za strukturiranje
proračuna. Sekvenca "do" omogućava
imperativniji stil sekvenciranja
akcija, olakšavajući IO operacije i
druge sekvencijalne zadatke.
U Haskell-u, funkcija mapM_ uzima funkciju i
listu kao ulaz. Primenjuje funkciju na svaki
element liste, a zatim izvodi IO akciju za
svaku rezultujuću vrednost, odbacujući
rezultate. U ovom specifičnom kodu, on

Brojevi od 1
primenjuje funkciju štampanja na svaki broj od
1 do 100, a zatim odbacuje rezultujuću listu.

do 100
HVALA NA PAŽNJI!

You might also like