在Haskell中,如果Maybe是Type或Union Type,你怎么称呼'Nothing`?

时间:2018-03-03 15:14:27

标签: haskell union-types

在Haskell中,Maybe类型可以是NothingJust a

data Maybe = Nothing | Just a

如果我们拨打Maybe联盟类型,那么Nothing是什么?一个Type?不,它不是类型,您不能将变量声明为Nothing类型。

也许你会说类型构造函数,是的,但我想表达NothingJust是不同的情况。

类型值?一个类型实例?一个案例?

2 个答案:

答案 0 :(得分:10)

这是data constructor。由于它没有参数,因此它也称为常量 nullary数据构造函数

这些数据构造函数组值(此处没有值)以及标记:某种标识符,用于标识它是Nothing,而不是{{ {1}}。

答案 1 :(得分:3)

Nothing也称为“变体”(或“变体类型”)Maybe a的“案例”。这个术语在OCaml中比在Haskell中更频繁地使用,例如Real World OCaml chapter of variants(我不知道在其他语言中常见的是什么)。