Difference between revisions of "Ro/Sunt tipurile din Haskell totuna cu domeniile functiilor din matematica ?"

From HaskellWiki
Jump to navigation Jump to search
 
Line 1: Line 1:
  +
[[Category:Ro]]
 
Sunt tipurile din Haskell totuna cu domeniile functiilor din matematica ?
 
Sunt tipurile din Haskell totuna cu domeniile functiilor din matematica ?
 
La ce foloseste Haskell tipurile ?
 
La ce foloseste Haskell tipurile ?
Line 20: Line 21:
 
Sistemul de inferente de tipuri face inferente cu tipuri, rationamente in care apar Integer, Char , [] etc dar nu cu VALORILE lor.
 
Sistemul de inferente de tipuri face inferente cu tipuri, rationamente in care apar Integer, Char , [] etc dar nu cu VALORILE lor.
 
----
 
----
[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:28, 21 January 2008

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

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.