Допустим, у вас естьHaskell тип данных шаблону
data SS=
SSliteral Value
и
data Value=
SSint Int
Теперь предположим, вы имеете n
, который имеет тип SS
. Вы хотите получить значение Int
SS
, как бы вы это сделали?
Допустим, у вас естьHaskell тип данных шаблону
data SS=
SSliteral Value
и
data Value=
SSint Int
Теперь предположим, вы имеете n
, который имеет тип SS
. Вы хотите получить значение Int
SS
, как бы вы это сделали?
Вы образец соответствия на n.
getIt :: SS -> Int
getIt (SSliteral (SSint x)) = x
Предлагаю вам прочитать lyah.
Мы определяем с использованием синтаксиса записи:
data SS = SSliteral {
ssValue :: Value
}
data Value = SSint {
ssInt :: Int
}
теперь мы определим
getIt :: SS -> Int
getIt = ssInt . ssValue
И теперь мы точка бесплатно.
+1 для ссылки – Landei