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