【发布时间】:2019-03-07 23:34:43
【问题描述】:
如果您不能在 Ocaml 中使用可变状态,您将如何在递归函数中创建计数器变量。例如:
假设你有一个数据类型,你想以递归方式匹配(该数据类型的)表达式。
Match expression (e: example) : int
|O(i) -> int x + 1
因此,在该示例中(其他情况故意省略),如果您发现 O(i),您希望 int x 从 0 增加,+ 1 + 2 + 3...
当我尝试实现它时,它会显示“unbound value int”。那么你将如何创建一个可以随着每次迭代而改变的变量。
对不起,如果这没有意义。
【问题讨论】:
-
为当前状态的递归函数添加另一个参数,并为每个递归调用使用新的(递增的)值调用它。将计数器的起始值传递给初始调用。
标签: recursion functional-programming ocaml