小编Hol*_*win的帖子

约束数据类型

假设您有一个很好的归纳定义,并且您希望将其定义为Haskell中的数据类型.然而,你的归纳定义是(正如许多归纳定义所述)这样一种形式,即生成规则要求它们的"前提"具有某种结构.例如,假设我们有以下定义:

  • 如果x是一个偶数,那么T x就是武器,
  • 如果x是一个奇数,那么S x就是武器.

如果我想在Haskell中定义这个(作为单个)数据类型,我会写类似的东西

data Weapon =  T Int | S Int
Run Code Online (Sandbox Code Playgroud)

显然,这是行不通的,你现在就可以生成T 5S 4,例如.是否有一种自然的方式来传递对构造函数参数的限制,以便我可以编写类似于上面代码的东西来给出正确的定义?

haskell types representation

6
推荐指数
3
解决办法
148
查看次数

标签 统计

haskell ×1

representation ×1

types ×1