Difference between revisions of "Cum deosebeste Haskell un Intreg de un intreg lung ?"

From HaskellWiki
Jump to navigation Jump to search
(New page: center|Haskell - Un limbaj functional pur Category:Ro ---- Vechile limbaje obligau programatorul sa scrie 1.0 pentru un real si 1 pentru un i...)
 
Line 24: Line 24:
   
 
Astfel, eventualele numere scrise in expresii in care e vorba de comenzi postale sunt transformate automat in numere, deoarece '''Haskell plaseaza automat un apel fromInteger in jurul fiecarui intreg''' , 1 devenind fromInteger(1).
 
Astfel, eventualele numere scrise in expresii in care e vorba de comenzi postale sunt transformate automat in numere, deoarece '''Haskell plaseaza automat un apel fromInteger in jurul fiecarui intreg''' , 1 devenind fromInteger(1).
 
   
 
Sistemul de tipuri face restul, alege functia care sa transforme acel 1 in ceea ce trebuie. Si gata. 1 a devenit ceea ce era necesar in acea expresie.
 
Sistemul de tipuri face restul, alege functia care sa transforme acel 1 in ceea ce trebuie. Si gata. 1 a devenit ceea ce era necesar in acea expresie.
   
  +
  +
Bibliografie:
  +
  +
[[Image:Tn.jpg]]
  +
Paul Hudak, John Petterson, Joseph H.Fasel, "O mica introducere in Haskell 98"
  +
Cap 9, 10.
  +
Versiunea in limba romana este/va fi editata de MatrixRom.
 
----
 
----
 
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la pagina principala Ro/Haskell. ]<br> <br>
 
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la pagina principala Ro/Haskell. ]<br> <br>

Revision as of 10:49, 12 July 2011

Haskell - Un limbaj functional pur

Vechile limbaje obligau programatorul sa scrie 1.0 pentru un real si 1 pentru un intreg.

Haskell foloseste un mecanism revolutionar, care face ca acelasi 1 , sa zicem, sa functioneze automat si ca intreg scurt din Int si ca intreg lung din Integer si ca real, (ba chiar si ca valoare monadica!) sau alta valoare a unui tip din clasa Num - chiar si un tip definit de utilizator - dupa nevoie.

Nevoia e stabilita de sistemul de tipuri din Haskell care tipizeaza expresia in care apare numarul si decide ce tip este necesar acolo.

Daca nu poate decide, recurge in ultima instanta la o declaratie default.

Bineinteles, daca utilizatorul vrea ca in tipul ComenziPostale 1 sa insemne Cantitatea "o bucata", va trebui sa:

- introduca tipul ComenziPostale in clasa Num

- sa defineasca functii

fromInteger :: a -> ComenziPostale

Astfel, eventualele numere scrise in expresii in care e vorba de comenzi postale sunt transformate automat in numere, deoarece Haskell plaseaza automat un apel fromInteger in jurul fiecarui intreg , 1 devenind fromInteger(1).

Sistemul de tipuri face restul, alege functia care sa transforme acel 1 in ceea ce trebuie. Si gata. 1 a devenit ceea ce era necesar in acea expresie.


Bibliografie:

Tn.jpg Paul Hudak, John Petterson, Joseph H.Fasel, "O mica introducere in Haskell 98" Cap 9, 10. Versiunea in limba romana este/va fi editata de MatrixRom.


<= Inapoi la pagina principala Ro/Haskell.

<- Inapoi la inceputul paginii 'Intrebarile incepatorului Ro/Haskell'.