小编Sey*_*oze的帖子

在Haskell中使用自然数是否有实用的方法?

我正在学习Haskell,并希望在一些构造函数中强制使用正整数(1,2,3,...),但我似乎只能找到'Int'和'Integer'数据类型.

我可以使用规范

data Nat = Zero | Succ Nat
Run Code Online (Sandbox Code Playgroud)

但后来我不能用1,4,......来表示它们.

所以我问,有没有办法实现这个目标?(就像在C中使用'unsigned')

提前致谢.

编辑:正如CA McCann所解释的那样,我将把它隐藏在一个模块中.另外,我必须添加以下链接: http: //haskell.org/haskellwiki/Smart_constructors以获取有关该主题的摘要.感谢您抽出宝贵时间回答!

unsigned haskell types integer

24
推荐指数
2
解决办法
6060
查看次数

在Haskell中扩展数据类型

Haskell新手在这里.

我为一个最小的类汇编语言写了一个评估器.

现在,我想扩展该语言以支持一些语法糖,然后我将编译回来仅使用原始运算符.意思是我不想再次触及评估模块.

我认为,在OO的做事方式中,可以扩展原始模块以支持语法糖操作符,在此提供翻译规则.

除此之外,我只能考虑重写两个模块中的数据类型构造函数,以便它们不会发生名称冲突,并从那里继续,好像它们是完全不同的东西,但这意味着一些冗余,因为我必须重复(仅与其他名称)共同的运营商.同样,我认为这里的关键字是extend.

有没有一种功能性的方法来实现这一目标?

感谢您抽出宝贵时间阅读此问题.

haskell types extend

13
推荐指数
2
解决办法
3955
查看次数

标签 统计

haskell ×2

types ×2

extend ×1

integer ×1

unsigned ×1