在random-fu包中,有这个data
宣言:
data Multinomial p a where
Multinomial :: [p] -> a -> Multinomial p [a]
我知道这是一个 GADT,但它试图完成什么?是否限制
p
或 a
, 等等?
最佳答案
它改变了构造函数的返回类型。如果它是这样定义的
data Multinomial p a = Multinomial [p] a
我们的构造函数将具有类型
Multinomial :: [p] -> a -> Multinomial p a
GADT 将构造函数的结果类型中的第二个类型参数更改为
[a]
.
关于haskell - 这个数据是什么......试图完成的地方? ( haskell ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25297824/