F# F数组和无法打印

F# F数组和无法打印,f#,F#,到目前为止,我已经准备好了很多东西,但那个愚蠢的printfn仍然不起作用 open System [<EntryPoint>] let main argv = let n = Console.ReadLine() |> int let nums = seq { for i in 1..n -> Console.ReadLine() |> int } printfn "%d" (Seq.sum nums) 0 我注意到两件事,你

到目前为止,我已经准备好了很多东西,但那个愚蠢的printfn仍然不起作用

open System

[<EntryPoint>]
let main argv = 
    let n = Console.ReadLine() |> int
    let nums = seq { for i in 1..n -> Console.ReadLine() |> int }
    printfn "%d" (Seq.sum nums)
    0

我注意到两件事,你需要以0结束程序,这是退出代码。
第二件事是FSharp中的等号不用于更新值,F使用约瑟夫的答案解释了代码的错误

如果你想以一种更为F的方式来做这件事,那么你可能想完全消除突变。一种相当好的方法是使用序列表达式构造从控制台读取的所有数字的序列,然后使用Seq.sum计算总和:

[<EntryPoint>]
let main argv = 
    let n = Console.ReadLine() |> int
    let nums = seq { for i in 1..n -> Console.ReadLine() |> int }
    printfn "%d" (Seq.sum nums)
    0

在末尾放一个0?main需要返回一个int,printfn是单位,我认为0修复了错误,但由于某种原因,数组和仍然不起作用。我有一个警告,第8行,第9行,这个表达式的结果被隐式忽略。考虑使用“忽略”来显式地丢弃这个值,例如“ExpR.>忽略”,或者“让”将结果绑定到一个名称,例如“让结果= ExpR”。请不要编辑您的问题那么多,特别是不要添加答案。这使得答案不连贯,不太有用。相反,在回答的评论中要求澄清。考虑恢复到修订版2。您可以做的是将屏幕截图添加到答案中。谢谢,不再出现警告或错误,但由于某些原因,数组和仍然不起作用。好像它没有打印出一个值。你是在.fsx文件还是在fs文件中运行它?谢谢,但不幸的是打印仍然不起作用。我的意思是,除了printfn之外,所有内容都应该根据您的示例输入进行设置。所有输入数字应在第二行中。所以您的代码在控制台中被阻塞。ReadLine@AlexZhuravel根据您的代码,所有数字都需要在单独的行上
[<EntryPoint>]
let main argv = 
    let n = Console.ReadLine() |> int
    let nums = seq { for i in 1..n -> Console.ReadLine() |> int }
    printfn "%d" (Seq.sum nums)
    0