0

有没有办法为整数定义数据类型。即 0,1,2,... 不是零,一,... 单独。

我想定义一组整数。bu 使用 0, n,n+1 和递归。我尝试过这样的事情:数据类型 nat=0|n|n+1 。但是几乎很明显不起作用,因为它不将 0 识别为整数,对吗?

我将不胜感激任何帮助。

4

1 回答 1

3

由于自然数集是可数无限的,因此您无法枚举所有情况。

您可以用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

于 2012-10-25T17:44:40.270 回答