相关疑难解决方法(0)

什么是Haskell的DataKinds扩展?

我试图找到一个对DataKinds扩展的解释,这对我来说只是读过Learn You a Haskell才有意义.是否有一个标准的来源,对我来说,我学到的东西很少?

编辑:例如文档

使用-XDataKinds,GHC会自动将每个合适的数据类型提升为一种类型,并将其(值)构造函数作为类型构造函数.以下类型

并举例说明

data Nat = Ze | Su Nat
Run Code Online (Sandbox Code Playgroud)

产生以下种类和类型构造函数:

Nat :: BOX
Ze :: Nat
Su :: Nat -> Nat
Run Code Online (Sandbox Code Playgroud)

我没有明白这一点.虽然我不明白是什么BOX意思,陈述Ze :: NatSu :: Nat -> Nat似乎说明的是,通常已经是泽和苏都是正常的数据构造完全一样,你希望看到与ghci的情况

Prelude> :t Su
Su :: Nat -> Nat
Run Code Online (Sandbox Code Playgroud)

haskell types algebraic-data-types data-kinds

56
推荐指数
2
解决办法
1万
查看次数

标签 统计

algebraic-data-types ×1

data-kinds ×1

haskell ×1

types ×1