2
我有一个函数制作函数的递归
let simpleSum n =
let s = n * (n+1)/2
printf "%A " s
let result = simpleSum 10
我现在希望把它递归;没有添加变量的尾递归是首选。 有什么毛病我的发言:if n <= 0 then 0
let rec recSum n =
if n <= 0 then
0
else
recSum n*(n+1)/2
recSum 4
我遇到错误:
FS0020: The result of this expression is implicitly ignored.
Consider using 'ignore' to discard this value explicitly, e.g. 'expr :> ignore',
or 'let' to bind the result to a name, e.g. 'let result = expr'.
我该如何解决这个问题?我想避免变量。
什么不工作?你遇到什么错误/问题? – mosca125
while循环有什么意义?在这种情况下,结果会不同于'let sum n = n *(n + 1)/ 2'吗? – sepp2k
while循环没有必要我知道,但是在我的任务中是一个要求。 我遇到了错误: FS0020:该表达式的结果被隐式忽略。考虑使用'ignore'来明确地丢弃这个值,例如'expr:> ignore''或'let'将结果绑定到名称,例如'let result = expr'。 我想在这里避免变量。 – kthonenice