【发布时间】:2012-03-31 21:34:26
【问题描述】:
嘿,我在理解递归代数类型的工作原理以及如何准确使用它们时遇到了一些麻烦。例如,对自然数采用以下 RAT 定义:
data Nat = Zero | Succ Nat
我们在这里使用 RAT 是因为值的集合需要是无限的,而且我知道原则是用前一个值来表达每个新值,但我不明白这是如何形成自然数的。有人介意清理一下吗?谢谢
【问题讨论】:
-
用
1 +翻译Succ。每个自然数都是1 + (1 + ( ... (1 + 0) ... )),用于适当数量的操作。
标签: haskell recursion functional-programming