有没有办法为整数定义数据类型。即 0,1,2,... 不是零,一,... 单独。
我想定义一组整数。bu 使用 0, n,n+1 和递归。我尝试过这样的事情:数据类型 nat=0|n|n+1 。但是几乎很明显不起作用,因为它不将 0 识别为整数,对吗?
我将不胜感激任何帮助。
有没有办法为整数定义数据类型。即 0,1,2,... 不是零,一,... 单独。
我想定义一组整数。bu 使用 0, n,n+1 和递归。我尝试过这样的事情:数据类型 nat=0|n|n+1 。但是几乎很明显不起作用,因为它不将 0 识别为整数,对吗?
我将不胜感激任何帮助。
由于自然数集是可数无限的,因此您无法枚举所有情况。
您可以用Peano 数在概念上表示自然数:
datatype peano = Zero | Succ of peano
数据类型非常简单,它只定义0
并确保每个自然数都有一个后继。例如,2 实际上表示为Succ (Succ Zero)
。
fun count Zero = 0
| count (Succ p) = 1 + count p
使用类似的技术,您可以像使用自然数一样构建add
, sub
,函数。mult