我正在尝试理解Chris Smith的书编程F#3.0 中的代码。
以下代码打印给定函数的真值表。
> // Print the truth table for the given function
let printTruthTable f =
printfn " |true | false |"
printfn " +-------+-------+"
printfn " true | %5b | %5b |" (f true true) (f true false)
printfn " false | %5b | %5b |" (f false true) (f false false)
printfn " +-------+-------+"
printfn ""
();;
val printTruthTable : (bool -> bool -> bool) -> unit
示例输出..
> printTruthTable (&&);;
|true | false |
+-------+-------+
true | true | false |
false | false | false |
+-------+-------+
val it : unit = ()
但是,我不明白以下一行
printfn " true | %5b | %5b |" (f true true) (f true false)
在我看来它似乎应该解决(这没有意义)
printfn " true | %5b | %5b |" (&& true true) (&& true false)
但这不会执行。
有人可以解释一下吗?
答案 0 :(得分:1)
已解决
printfn " true | %5b | %5b |" ((&&) true true) ((&&) true false)
打印
true | true | false |