gpt4 book ai didi

haskell - 如何创建在一定范围内有界的类型

转载 作者:行者123 更新时间:2023-12-03 13:28:07 25 4
gpt4 key购买 nike

我想创建一个限制在某个范围内的新整数类型。我努力了:

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

instance Bounded PitchClass where
minBound = PC 0
maxBound = PC 11

但是,我想要的是一些会失败的东西,如果像
PC 12

或者
PC (-1)

正在尝试。

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

最佳答案

是的,不从模块导出数据构造函数是要走的路。

相反,您导出一个按您所说的进行检查的函数。这通常称为 smart constructor .

关于haskell - 如何创建在一定范围内有界的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7302735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com