有没有办法为整数定义数据类型。即0,1,2,......不为零,一,......单独。
我想定义整数的集合。使用0,n,n + 1进行递归。 我尝试过这样的事情:datatype nat = 0 | n | n + 1。但是显然不能工作,因为它不能将0视为整数对吗?
我将不胜感激。
答案 0 :(得分:3)
由于这组自然数是无穷无尽的,你无法枚举所有的情况。
您可以通过Peano numbers概念性地表示自然数字:
datatype peano = Zero | Succ of peano
数据类型非常简单,它只定义0
并确保每个自然数都有后继数。例如,2实际上表示为Succ (Succ Zero)
。
fun count Zero = 0
| count (Succ p) = 1 + count p
使用类似的技巧,您可以使用自然数字构建add
,sub
,mult
函数。