无法用F#中的let关键字定义递归方法>> [

问题描述 投票:0回答:1
我正在通过VS学习F#。

您能告诉我为什么编译器通过以下代码给我一个错误FS3118吗?

sumToN之前的“ let”在行下用红色标记...

FS3118:不完整的值或函数定义。如果在表达式中,则表达式的主体必须与'let'关键字缩进同一列。

open System [<EntryPoint>] let main argv = let sumToN n = let rec f s n = if n > 0L then f (s+n) (n-1L) else s in f 0L n //let sum = sumToN(5L) //do printfn "%i" sum |> ignore 0

我应该如何更正代码? 

我正在通过VS学习F#。您能告诉我为什么编译器给我以下代码错误FS3118吗? FS3118:不完整的值或函数...

function recursion f# let
1个回答
0
投票
这是最后一行的零。因为它在右边缩进一个字符,所以它被认为是let sumToN块的一部分。
© www.soinside.com 2019 - 2024. All rights reserved.