Documente Academic
Documente Profesional
Documente Cultură
Curs 7
∑ f ( x)
x = min
sigma :: Integer -> Integer -> (Integer -> Integer ) -> Integer
sigma min max f | min == max = f min
| min < max = (f min) + (sigma (min + 1) max f)
| min > max = 0
Apeluri WinGHCi:
Main>maine Luni
<interactive>:1:0:
No instance for (Show Ziua)
arising from a use of `print' at <interactive>:1:0-9
Possible fix: add an instance declaration for (Show Ziua)
In a stmt of an interactive GHCi command: print it
Main>data2str (maine Luni)
"Marti"
(0.00 secs, 0 bytes)
Main>
Tipuri sinonime
Tipurile sinonime se introduc în Haskell pentru a
simplifica scrierea tipurilor.
Definirea tipurilor sinonime constă în asocierea unui
nume sugestiv pentru un tip de date
complex/complicat deja definit, dar care este folosit
des în aplicaţie.
Cuvântul rezervat care introduce sinonimul este type.
e.g.
type String = [Char]
type Persoana = (Nume, Adresa)
type Nume = String
type Adresa = Necunoscuta | Adresa String
Exemplul 1
[Daumé, page 48]
data Triple a b c = Triplet a b c
-----------------------------------------------------------------------------------
data – introduce un tip de date
Triple – numele tipului de date
a b c – variabile tip – parametrii tipului de date Triple
Triplet – constructorul de date pentru tipul Triple