Соответствие шаблону типа данных на Haskell - PullRequest
1 голос
/ 09 ноября 2010

Допустим, у вас есть

data SS=
SSliteral Value

и

data Value=
SSint Int

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

Ответы [ 2 ]

11 голосов
/ 09 ноября 2010

Вы соответствуете шаблону по n.


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

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

0 голосов
/ 03 мая 2011

Определяем с синтаксисом записи:

data SS = SSliteral {
    ssValue :: Value
    }

data Value = SSint {
    ssInt :: Int
}

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

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

А теперь мы без очков.

...