递归函数不起作用

Don*_*eve 0 .net f# functional-programming

所以我在这里有这个功能,我似乎无法理解为什么它不会工作.

let rec recSum n = 
  if n <= 0 then
   0
  else
   recSum n*(n+1)/2
 recSum 4
Run Code Online (Sandbox Code Playgroud)

我没有得到错误,它只是崩溃.谁能找到错误?我这么长时间一直在为此主演.

我需要它是递归的.

好吧所以我把它改成了:

let rec recSum n = 
 if n > 0 then
  recSum n*(n+1)/2
 else
  n
 n
recSum 4
Run Code Online (Sandbox Code Playgroud)

因为正如你们所指出的那样,n只会增加.现在我得到错误'FS0001:类型单位不匹配int?

Jua*_*mas 5

问题是,n*(n+1)/2导致递归中传递的值不断增加.没有办法得到n <= 0.序列开始:

4 -> 10 -> 55 -> etc...

传递给的价值recSum只会增加.