Care sunt structurile de control in Haskell ?
From HaskellWiki
Contactul cu un limbaj de programare nou naste intrebari, mai ales cand este vorba de un limbaj atat de inovator. Cea mai buna cale de a va familiariza cu Haskell este sa conversati cu un interpretor, cum este Hugs. Sau sa folositi GHC si sa conversati cu GHCi (GHC Interactiv).
|
Haskell fiind limbaj functional cu "lazy evaluation" nu are structuri de control in sensul din limbajele imperative. Dar le puteti inventa si folosi pe cele dorite de dumneavoastra ! Flexibilitate maxima. (Re)vedeti si: Cum scriu bucla while din functia principala, main ? In Haskell if then else este un operator conditional if <exp1> then <exp2> else <exp3> avand mai curand sensul din C al operatorului ' ? : ' Exista si generalizarea lui if , case-ul. Si mai avem de adaugat aici ceva. Ceea ce va lipseste atunci cand programati in stil imperativ in Haskell poate fi,deci,adaugat. Repet: Haskell permite sa va definiti propriile structuri de control pentru programarea "imperativa" dar (sunt mai usor de facut) fara variabile locale in vre-un context. Deci puteti defini imediat un for care cicleaza parcurgand valorile dintr-o lista si e ceva mai complicat de facut un for care modifica o variabila dintr-un context. Exemple clasice de programare cu actiuni (monadice) repetate: myforever :: IO () -> IO () Dupa "Tackling the Awkward Squad:..." de Simon Peyton Jones. Neaparat de citit cap 2.4 - Control structures din ea. Apoi 2.5. Si nu uitati: Programarea "imperativa" in Haskell este de fapt evaluare lazy a unor succesiuni de >>= (bind-uri) dintr-o monada. Uzual monada de I/O. Iar do-notatia functioneaza ca un fel de macrodefinitie care prin expandare produce acele succesiuni de bind-uri.
Aici Haskell seamana putin cu Prolog-ul, in sensul ca alege ordinea efectuarii calculelor dar si difera de Prolog deoarece acolo regulile erau date de programator. Pagina indexata la indexul Categories:Ro <= Inapoi la pagina principala Ro/Haskell. |

