Odcinek
Wykłady C9: Dr Erik Meijer - Podstawy programowania funkcjonalnego Rozdział 10 z 13
W rozdziale 10, Deklarowanie typów i klas, dr Meijer uczy nas o deklaracjach typów, deklaracjach danych, wyrażeniach arytmetycznych itp. W języku Haskell można zdefiniować nową nazwę istniejącego typu przy użyciu elementu
deklaracja typu:
type String = [Char]
Ciąg jest synonimem typu [Char].
Podobnie jak definicje funkcji, deklaracje typów mogą również mieć parametry. Deklaracje typów mogą być zagnieżdżone, ale
nie rekursywne.
Zagnieżdżone:
type Pos = (Int,Int)
type Trans = Pos —> Pos
Niedozwolona rekursja:
type Tree = (Int,[Tree])
Zupełnie nowy typ można zdefiniować, określając jego wartości przy użyciu deklaracji danych:
data Bool = False | True
Wartość logiczna to nowy typ z dwiema nowymi wartościami False i True.
Pobierz slajdy prezentacji tutaj
Rozdział 1rozdział 2rozdział 3rozdział 4 rozdział 5rozdział 6rozdział 7rozdział 8rozdział 9rozdział 10rozdział 11rozdział 12rozdział 13
W rozdziale 10, Deklarowanie typów i klas, dr Meijer uczy nas o deklaracjach typów, deklaracjach danych, wyrażeniach arytmetycznych itp. W języku Haskell można zdefiniować nową nazwę istniejącego typu przy użyciu elementu
deklaracja typu:
type String = [Char]
Ciąg jest synonimem typu [Char].
Podobnie jak definicje funkcji, deklaracje typów mogą również mieć parametry. Deklaracje typów mogą być zagnieżdżone, ale
nie rekursywne.
Zagnieżdżone:
type Pos = (Int,Int)
type Trans = Pos —> Pos
Niedozwolona rekursja:
type Tree = (Int,[Tree])
Zupełnie nowy typ można zdefiniować, określając jego wartości przy użyciu deklaracji danych:
data Bool = False | True
Wartość logiczna to nowy typ z dwiema nowymi wartościami False i True.
Pobierz slajdy prezentacji tutaj
Rozdział 1rozdział 2rozdział 3rozdział 4 rozdział 5rozdział 6rozdział 7rozdział 8rozdział 9rozdział 10rozdział 11rozdział 12rozdział 13
Chcesz przesłać opinię? Prześlij problem tutaj.