在Haskell中,Maybe
类型可以是Nothing
或Just a
data Maybe = Nothing | Just a
如果我们拨打Maybe
联盟类型,那么Nothing
是什么?一个Type
?不,它不是类型,您不能将变量声明为Nothing
类型。
也许你会说类型构造函数,是的,但我想表达Nothing
和Just
是不同的情况。
类型值?一个类型实例?一个案例?
答案 0 :(得分:10)
这是data constructor。由于它没有参数,因此它也称为常量和 nullary数据构造函数。
这些数据构造函数组值(此处没有值)以及标记:某种标识符,用于标识它是Nothing
,而不是{{ {1}}。
答案 1 :(得分:3)
Nothing
也称为“变体”(或“变体类型”)Maybe a
的“案例”。这个术语在OCaml中比在Haskell中更频繁地使用,例如Real World OCaml chapter of variants(我不知道在其他语言中常见的是什么)。