2010-11-09 2 views
1

Допустим, у вас естьHaskell тип данных шаблону

data SS= 
SSliteral Value 

и

data Value= 
SSint Int 

Теперь предположим, вы имеете n, который имеет тип SS. Вы хотите получить значение IntSS, как бы вы это сделали?

ответ

11

Вы образец соответствия на n.


getIt :: SS -> Int 
getIt (SSliteral (SSint x)) = x 

Предлагаю вам прочитать lyah.

+1

+1 для ссылки – Landei

0

Мы определяем с использованием синтаксиса записи:

data SS = SSliteral { 
    ssValue :: Value 
    } 

data Value = SSint { 
    ssInt :: Int 
} 

теперь мы определим

getIt :: SS -> Int 
getIt = ssInt . ssValue 

И теперь мы точка бесплатно.