使用详细语法在F#嵌套for循环中编译错误

ing*_*ted 2 f# for-loop functional-programming nested visual-studio-2012

我是F#的新手,但是当我使用详细语法将for循环放入另一个时,它将无法编译:

#light "off"

let Multiple9x9 () = 
  for i in 1 .. 9 do
    printf "\n";
    for j in 1 .. 9 do
      let k = i * j;
      printf "%d x %d = %2d " i j k ;
    done;;
  done;;
Multiple9x9 ();;
printf "\n" ;;
Run Code Online (Sandbox Code Playgroud)

我知道它可以与#light"on"一起使用:

let Multiple9x9 () = 
  for i in 1 .. 9 do
    printf "\n"
    for j in 1 .. 9 do
      let k = i * j
      printf "%d x %d = %2d " i j k
Multiple9x9 ()
printf "\n"
Run Code Online (Sandbox Code Playgroud)

Dan*_*iel 6

如果您打算in在每次let绑定后使用所需的详细语法.此外,您不需要;;done内部循环:它使外环不全(切断外done).

这是更正后的代码:

let Multiple9x9 () = 
  for i in 1 .. 9 do
    printf "\n";
    for j in 1 .. 9 do
      let k = i * j in
      printf "%d x %d = %2d " i j k;
    done;
  done;;
Multiple9x9 ();;
printf "\n" ;;
Run Code Online (Sandbox Code Playgroud)