Clasa Show

From HaskellWiki
Revision as of 06:19, 6 November 2008 by Ha$kell (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Haskell - Clase de tipuri

In esenta clasele Haskell sunt colectii de structuri algebrice ! Tipul introdus cu instance in acea clasa este MULTIMEA DE VALORI iar FUNCTIILE pot fi OPERATIILE cu acele valori. Din ele pot rezulta si valori de alt tip.


Clasa Show este clasa valorilor afisabile, pentru care exista o functie show ce transforma acele valori in string-uri (tiparibile). Mai sunt si alte clase.

Utilizatorul poate introduce/defini propriile clase cu declaratia class si pune in clase propriile tipuri cu declarartia instance. Se admit si un fel de clase conditionate, in care ceva devine membru al clasei daca este deja membru al altei sau altor clase. Vedeti si folosirea lui => la declaratii de tipuri.


Se mai pot scrie multe lucruri. Este un concept puternic si foarte util la realizarea de aplicatii cu operatii de IO pe structuri de date complexe.

Notati ca putem introduce un tip in Clasa Show prin simpla adaugare a precizarii

deriving Show

dupa descrierea data' sau newtype a tipului resprectiv. Functia show (operatia de baza din calsa Show care va transforma data in String ) vi se va scrie / genera AUTOMAT.

Dar daca doriti altfel de afisare ... scrieti propriile dumneavoastra functii show in instantele claselor dorite.

1. Vedeti aici exemplul Z4 al claselor de resturi Z4 (-- click pe Z4 --) . Antrenament: Completati-l si testati-l. Faceti calcule in Z4.

3. Un exemplu (bonus!) de introducere a multimii posibile de solutii pentru ecuatiile de gradul I si al II-lea in Clasa Show (pentru a afisa rezultatele cum dorim) mi-a fost oferit de Smeu Florin si cu permisiunea lui il vom reproduce aici.

Ideea este ca solutiile ecuatiilor de gradul I si doi se pot reprezenta ca un tip de date:

data Solutii = DouaSolutii Float Float 
             | SolutieDubla Float
             | SolutiiComplexe Float Float  
             | Infinitate 
             | NiciUna

-- cele doua valori sunt parte a reala si cea imaginara la solutii complexe

Iar acest tip este introdus cu instance in clasa Show. (va urma)



Pagina indexata la indexul Categories:Ro


<= Inapoi la pagina principala Ro/Haskell.

<- Inapoi la Intrebarile incepatorului Ro/Haskell.