(我不确定反向递归是否是正确的名称..)
我想定义一个递归函数,初始值为k = n,终止于k = 0
所以我试着用这种方式写(这里n = 10):
let rec f k =
match k with
|_ when k > 10 -> 0
| 10 -> 1
|_ -> (f n+1)-1
并且VS崩溃了。有谁可以帮助我?
分界线------------------
我认为我的问题有点像这样:
Consider a sequence with
a(10) = 1
a(k) = [a(k+1)*a(k+1)] + 1
a(k) = 0 if (k < 0 or k > 10)
我怎样才能在F#中实现它?
答案 0 :(得分:1)
let rec f k =
match k with
|_ when k > 10 || k < 0 -> 0
| 10 -> 1
|_ -> f (k+1) * f (k+1) + 1