相关疑难解决方法(0)

如何创建一定范围内的类型

我想创建一个新的积分类型,它被限制在一定范围内.我试过了:

data PitchClass = PC Int deriving (Ord, Eq, Show)

instance Bounded PitchClass where
  minBound = PC 0
  maxBound = PC 11
Run Code Online (Sandbox Code Playgroud)

然而,我想要的是如果有的话会失败

PC 12
Run Code Online (Sandbox Code Playgroud)

要么

PC (-1)
Run Code Online (Sandbox Code Playgroud)

被尝试了.

对于您希望在创建新类型的情况下放置约束的情况的一般方法,其中值构造函数不从模块导出,而是返回类型实例和执行约束检查的函数被导出?

haskell types typeclass

18
推荐指数
2
解决办法
4593
查看次数

标签 统计

haskell ×1

typeclass ×1

types ×1