私はしばらくこの問題に悩まされていて、それを解決する方法が思いつきません。
次の関数 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 ;
反復関数は、引数にすべての作業を任せながら、1回の再帰呼び出しのみを使用することを想定しています。しかし、この問題でそれを行う方法がわかりません!どんな助けでも大歓迎です!