0

(我不确定反向递归是否是正确的名称..)

我想定义一个递归函数,初始值为 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# 中实现它?

4

1 回答 1

1
let rec f k =
  match k with
  |_ when k > 10 || k < 0 -> 0
  | 10 -> 1
  |_ -> f (k+1) * f (k+1) + 1
于 2013-09-15T15:27:36.237 回答