Personal tools

De ce numim limbajul Haskell un limbaj functional ?

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m
Line 1: Line 1:
  +
[[Category:Ro]]
  +
 
Deoarece spre deosebire de limbajele imperative care manipuleaza practic DATE sub forma de numere intregi sau valori codate prin numere intregi (caractere, stringuri,pointeri), limbajele functionale manipuleaza FUNCTII codate prin lambda expresii.(Iar daca limbajul functional e compilat sunt codate prin combinatori, dar sa nu intram acum in detalii.) Cum multimea functiilor este mai bogata decat cea a numerelor intregi (are un cardinal mai mare) asemenea limbaje sunt mult mai expresive.
 
Deoarece spre deosebire de limbajele imperative care manipuleaza practic DATE sub forma de numere intregi sau valori codate prin numere intregi (caractere, stringuri,pointeri), limbajele functionale manipuleaza FUNCTII codate prin lambda expresii.(Iar daca limbajul functional e compilat sunt codate prin combinatori, dar sa nu intram acum in detalii.) Cum multimea functiilor este mai bogata decat cea a numerelor intregi (are un cardinal mai mare) asemenea limbaje sunt mult mai expresive.
   
Line 19: Line 21:
 
..si lista ar mai putea continua.
 
..si lista ar mai putea continua.
   
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la pagina principala Ro/Haskell ]
+
----
  +
Pagina indexata la indexul [[Category:Ro]] [http://www.haskell.org/haskellwiki/Category:Ro Categories:Ro]
  +
----
  +
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la pagina principala Ro/Haskell. ]

Revision as of 09:27, 21 January 2008


Deoarece spre deosebire de limbajele imperative care manipuleaza practic DATE sub forma de numere intregi sau valori codate prin numere intregi (caractere, stringuri,pointeri), limbajele functionale manipuleaza FUNCTII codate prin lambda expresii.(Iar daca limbajul functional e compilat sunt codate prin combinatori, dar sa nu intram acum in detalii.) Cum multimea functiilor este mai bogata decat cea a numerelor intregi (are un cardinal mai mare) asemenea limbaje sunt mult mai expresive.

Exista, e important de stiut, o teorie matematica a lambda calculului. Se studiaza in cadrul cursului de Programare functionala.


Ce avantaje au asemenea limbaje:

- deoarece aplicarea functiilor asociaza la dreapta iar in cursul calculelor regulile de reducere se pot aplica in mai multe locuri din formula, evaluarea unei formule se poate face pe mai multe procesoare conlucrand  ! Acest lucru califica limbajele functionale (bazate pe combinatori si/sau lambda calcul) printre limbajele din deceniul procesarii dual-core si/sau quad-core.

- in Haskell, limbaj functional pur, fara efecte laterale, functiile dau intotdeauna acelasi rezultat (da, chiar si functiile pentru I/O - vedeti monada de I/O) ceea ce permite garantarea calitatii software-ului !! Permite si demonstrarea calitatii lui !!

- puteti incapsula sabloane de programare in functii de ordin superior

- puteti lucra in stil generic programming (cel putin in Haskell !)

- daca limbajul admite clase (Haskell admite, iar Lisp-ul nu) puteti defini clase in care datele manipulate sunt de fapt functii !!


..si lista ar mai putea continua.


Pagina indexata la indexul Categories:Ro


<= Inapoi la pagina principala Ro/Haskell.