使用2 for循环时无法让我的f#工作

时间:2018-09-26 12:32:29

标签: loops for-loop f#

嘿,我正在尝试制作一个功能,该功能的总和。但是似乎我的创作无效,并且在文本编辑器中给我错误。这是代码

let myFunction (n:int):int =
    let mutable sum = 0
    for i = 0 to n+2 do
    for j = i-1 to n+1 do

        sum<- sum + 1 

    sum

它使我在for循环周围出现此错误

“该表达式应具有类型     'int'
但是这里有类型     'unit'“

1 个答案:

答案 0 :(得分:2)

如果我正确理解了您的myFunction逻辑,它应该是这样的:

let myFunction (n:int):int =
    let mutable sum = 0
    for i = 0 to n+2 do
        for j = i-1 to n+1 do
            sum <- sum + 1
    sum

请注意与原始代码不同的两件事:

  1. 第二个for循环被缩进到第一个循环的“内部”,并且
  2. 最后有sum行:函数的最后一个表达式是它的返回值。因此,通过在函数末尾添加一行sum,可以使它返回您计算出的总和。