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