Я относительно новичок в Haskell и начал читать "Real World Haskell".
Я просто наткнулся на тип Maybe, и у меня возник вопрос о том, как получить фактическое значение из Just 1
например.
Я написал следующий код:
combine a b c = (eliminate a, eliminate b, eliminate c)
where eliminate (Just a) = a
eliminate Nothing = 0
Это прекрасно работает, если я использую:
combine (Just 1) Nothing (Just 2)
Но если я изменю, например, 1 на строку, это не сработает.
Я думаю, я знаю почему: потому что eliminate
должно возвращать один тип, который, в данном случае, Int
. Но как я могу изменить eliminate
чтобы иметь дело хотя бы со строками (или, может быть, со всеми типами)?