F# F中乘法表的比较#

F# F中乘法表的比较#,f#,F#,我试着比较两种打印乘法表的方法,虽然当我打印f“%s”mulTable n和printf“%s”loopMulTable n时,它们打印的字符串相同,但在比较它们时,它们似乎并不相同,因为在最后一个函数中每次比较都会打印false。谁能给我解释一下原因吗 let a = " 1 2 3 4 5 6 7 8 9 10 1 1 2 3 4 5 6 7 8 9 10 2 2

我试着比较两种打印乘法表的方法,虽然当我打印f“%s”mulTable n和printf“%s”loopMulTable n时,它们打印的字符串相同,但在比较它们时,它们似乎并不相同,因为在最后一个函数中每次比较都会打印false。谁能给我解释一下原因吗

let a = "      1    2    3    4    5    6    7    8    9   10
 1    1    2    3    4    5    6    7    8    9   10
 2    2    4    6    8   10   12   14   16   18   20
 3    3    6    9   12   15   18   21   24   27   30
 4    4    8   12   16   20   24   28   32   36   40
 5    5   10   15   20   25   30   35   40   45   50
 6    6   12   18   24   30   36   42   48   54   60
 7    7   14   21   28   35   42   49   56   63   70
 8    8   16   24   32   40   48   56   64   72   80
 9    9   18   27   36   45   54   63   72   81   90
10   10   20   30   40   50   60   70   80   90  100"

let mulTable n =
    a.[0..(n*54)+51]


let loopMulTable n = 
    let mutable returnString = ""
    returnString <- returnString + (sprintf  "  ")
    for i in 1..10 do
        returnString <- returnString + (sprintf "%5d" i)
    for x in 1..n do
        returnString <- returnString + (sprintf "\n")
        returnString <- returnString + (sprintf "%2d" x)
        for y in 1..10 do
            returnString <- returnString + (sprintf "%5d" (x*y))
    returnString

let o = "n:"
let u = "boolean value:"

let chooseN n =
    printfn "%5s %19s" o u
    for n in 1..n do
        printfn "%4d %15b" n ((loopMulTable n)=(mulTable n))


chooseN 5
a=“1 2 3 4 5 6 7 8 9 10
1    1    2    3    4    5    6    7    8    9   10
2    2    4    6    8   10   12   14   16   18   20
3    3    6    9   12   15   18   21   24   27   30
4    4    8   12   16   20   24   28   32   36   40
5    5   10   15   20   25   30   35   40   45   50
6    6   12   18   24   30   36   42   48   54   60
7    7   14   21   28   35   42   49   56   63   70
8    8   16   24   32   40   48   56   64   72   80
9    9   18   27   36   45   54   63   72   81   90
10   10   20   30   40   50   60   70   80   90  100"
让我们来讨论一下=
a、 [0..(n*54)+51]
设表n=
let mutable returnString=“”

returnString相等性测试很可能失败,因为此行附加了换行符,而不是回车换行符组合

returnString