嗨,我是 Haskell 的新手,对不起,如果这个问题是基本的,但我不明白这里发生了什么。我想从 Type Maybe Int 中定义一个元素
m :: Maybe Int
m = Just m | Nothing
但我收到一个错误:
parse error on input `|'
|
3 | m = Just m | Nothing
| ^
Failed, no modules loaded.
为什么会这样。
嗨,我是 Haskell 的新手,对不起,如果这个问题是基本的,但我不明白这里发生了什么。我想从 Type Maybe Int 中定义一个元素
m :: Maybe Int
m = Just m | Nothing
但我收到一个错误:
parse error on input `|'
|
3 | m = Just m | Nothing
| ^
Failed, no modules loaded.
为什么会这样。
一步一步,你必须看看数据类型的定义可能:
data Maybe a = Nothing | Just a
然后,您可以在那里看到两个特殊函数,称为构造函数,在您的示例中,它可以用作:
m :: Maybe Int
m = Just 5
使用另一个构造函数的另一个例子:
nothingHere :: Maybe a
nothingHere = Nothing
如果您想创建自己的数据,可能应该是这样的:
data MyMaybe a = None | Some a deriving Show
m :: MyMaybe Int
m = Some 5