1
可能重复:
Combine memoization and tail-recursionMemoizing尾调用优化递归函数
所以下面是代码我写,尾调用使用可变累积优化
let rec counter init count =
if init = 1 then count + 1 else
match init with
| Even value -> (counter (value/2) (1 + count))
| Odd value -> (counter ((3 * value) + 1) (count+1))
let SeqBuilder (initval:int) : int =
counter initval 0
我该如何记忆?当我试图记忆它时遇到的问题是,递归调用必须去memoize对象,所以你必须有一个...递归对象?
还是更简单一些,我只是缺乏经验?
现在你的计数器不是尾递归 – 2010-09-18 05:19:09