Personal tools

Ro/Sunt tipurile din Haskell totuna cu domeniile functiilor din matematica ?

From HaskellWiki

Revision as of 12:54, 2 December 2008 by Ha$kell (Talk | contribs)

Jump to: navigation, search


(ro) Sunt tipurile din Haskell totuna cu domeniile functiilor din matematica ? La ce foloseste Haskell tipurile ?

(en) Are Haskell types similar with the mathematical domains ? Why Haskell use types ?

Retineti: Tipurile din Haskell NU sunt totuna cu domeniile functiilor ! Sunt informatii pentru deducerea tipului rezultatelor de catre compilator.

Ar trebui sa stiti, iar daca ati urmat un curs de semantica a limbajelor de programare sau ati lucrat cu un limbaj modern stiti, ca un compilator (modern) face si inferente (deductii) de tipuri. De exemplu daca f:: a -> b si x:: a atunci f x :: b.

Sistemul de tipuri din Haskell face ceva mai mult deoarece poate opera cu tipuri polimorfice (cum sunt listele de orice, [x] ) si poate determina cel mai mic tip (deoarece tipuri mai generale pot fi multe) al unei expresii.

Ca urmare, ceea ce scriem la declaratiile functiilor ca semnatura nu este exact "domeniul" functiei ci o informatie numita "tipul argumentelor", informatie utila pentru procesarea facuta de sistemul de inferente de tipuri. Pentru matematician as spune ca se da nu:
- domeniul
- multimea din care functia ia valori
- regula de corespondenta (setul de ecuatii)

Programatorul in Haskell intelege ca o functie se specifica daca se dau:
- multimea din care argumentele POT lua valori (fara restrictii bazate pe valoare)
- multimea din care functia ia valori
- regula de corespondenta (setul de ecuatii)

Sistemul de inferente de tipuri face inferente cu tipuri, rationamente in care apar Integer, Char , [] etc dar nu cu VALORILE lor.


Pagina indexata la indexul Categories:Ro


<= Inapoi la pagina principala Ro/Haskell.