• Изброен тип
data Seasons = Spring | Summer | Autumn | Winter

seasonIndex Spring = 0
seasonIndex Summer = 1
seasonIndex Autumn = 2
seasonIndex Winter = 3

  • Произведение на типове. Конструктори
data Person = APerson String String Int

allData (APerson name address telephone) = name ++ address ++ show telephone

  • Наследяване на класове
data Seasons = .....
               deriving (Show, Eq)
data Person = .....
             deriving (Show, Eq)

?>Autumn
?>Autumn == Autumn
?>Autumn == Winter
?>(APerson "John" "New York" 123) == (APerson "Pesho" "Plovdiv" 123)
?>(APerson "Pesho" "NewYork" 123)

  • Рекурсивни типове
data IntBTree = EmptyTree | Node Int IntBTree  IntBTree
                      deriving (Show)

  • Полиморфни рекурсивни типове
data BTree a = Empty | Node a (BTree a) (BTree a)
                      deriving (Show)
Последно модифициране: събота, 12 ноември 2011, 17:38