在Haskell中,如果Maybe是一个类型或联合类型,那么如何称呼'Nothing'?
在Haskell中,在Haskell中,如果Maybe是一个类型或联合类型,那么如何称呼'Nothing'?,haskell,union-types,Haskell,Union Types,在Haskell中,可能类型可以是无或只是一个 data Maybe = Nothing | Just a 如果我们调用可能联合类型,那么什么是无?a类型?不,它不是类型,不能将变量声明为Nothingtype 也许你会说类型构造函数是真的,但我想表达一个事实,Nothing和Just是不同的情况 类型值?类型实例?类型案例?它是一个类型案例。由于它没有参数,所以也称为常量和空数据构造函数 这些数据构造器将值(这里没有值)与标记一起分组:某种标识符,用于标识它是无,而不是仅无也称为“变体”(或
可能
类型可以是无
或只是一个
data Maybe = Nothing | Just a
如果我们调用可能
联合类型,那么什么是无
?a类型
?不,它不是类型,不能将变量声明为Nothing
type
也许你会说类型构造函数是真的,但我想表达一个事实,Nothing
和Just
是不同的情况
类型值?类型实例?类型案例?它是一个类型案例。由于它没有参数,所以也称为常量和空数据构造函数
这些数据构造器将值(这里没有值)与标记一起分组:某种标识符,用于标识它是
无
,而不是仅
无
也称为“变体”(或“变体类型”)的“案例”)可能是。这个术语在OCaml中比在Haskell中使用得更频繁,例如,(我不知道在其他语言中什么是通用的)。它是一个数据构造函数。值得注意的是,这里的类型构造函数是可能
(与无
和只是
)可能
是一个类型构造函数。。。请仔细阅读。请记住,当您看到诸如data ta=xa | Y Int | Z
之类的声明时,T
仅出现在类型签名中,而X
、Y
和Z
仅出现在代码中(即在术语级别)。语法中包含大量双关语,在我看来相当混乱;e、 g.yint
在声明中混合了类型和术语级别的内容,以表示“Y接受一个Int
-type参数”,但在代码中它的用法类似于y42
或Y(someNumber+1)
。很明显,它从未应用于某个类型