Ce sa retin despre declaratia de tipuri utilizator cu data ?

From HaskellWiki
Revision as of 15:17, 11 November 2007 by Ha$kell (talk | contribs)
Jump to navigation Jump to search

Retineti ca se folosesc la a defini tipuri de structuri de date utilizator. Si bineinteles invatati sintaxa lor.

data NumeTip v a r ... = NumeDate t i p u r i ...

Numelui din stanga i se zice constructor de tip. Numelui din dreapta i se zice constructor de date. (pot fi mai multi)

Cum sa ne imaginam o structura de date utilizator ?

V-o puteti imagina fiind similara unei cutii compartimentate folosita pentru globurile din pomul de craciun. Are compartimente (de exemplu mari si mici - imaginati-va ca sunt notate cu minuscule distincte) in care se vor putea pune anumite feluri de podoabe. Bineinteles in compartimentele notate cu 'a' vom pune doar lucruri (pardon - date) de un anume tip.

Cutia are o eticheta: numele tipului din stanga semnului egal. Eticheta poate fi parametrizata asa ca putem avea ceva numit:

CutieMareCu Globuri -- Globuri este tipul dat ca parametru CutieMicaCu Globuri sau CutieMareCu Int

daca am declarat

data CutieMare x = .....

si

data CutieMica y = .....

Observati ca seamana cu template-urile din C++. Acest lucru nu e intamplator. In C++ template-urile serveau la realizarea de clase si functii cu parametri de tip polimorfici. La fel si aici, in Haskell, tipurile declarate cu data, daca contin variabile de tip sunt veritabile sabloane (template-uri) polimorfice de tipuri.

Cititi si Capitolul 3 din cartea "Introducere in Haskell 98 prin exemple" din pagina cu capitole de carte sau capitolul din cartea tiparita.. Am scris acest capitolul acesta in martie 2005, asa cum se vede si din imaginile aflate in capitol. - Descarcati capitolul despre declaratii utilizator!


Aceasta pagina mai poate fi imbunatatita.

<= Inapoi la pagina principala Ro/Haskell