我已经被这个问题困扰了一段时间,想不出如何解决它。
考虑以下函数 f : N → N 。
f(0) = 2, f(1) = 0, f(2) = 3,
对于 n≥3,f(n) = 3f(n-3) + 2f(n-2) - f(n-1)。
定义 f 的迭代版本。
我知道我的解决方案应该是这样的
fun myFun 0 = 2
| myFun 1 = 0
| myFun 2 = 3
| myFun n =
let
(* code *)
in
funHelp(3,2,0,n)
end ;
我知道迭代函数只假设使用一个递归调用,而让参数完成所有工作。不过,我不知道如何解决这个问题!任何帮助将非常感激!