印刷真值表混乱

时间:2014-05-26 21:11:01

标签: f#

我正在尝试理解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)

但这不会执行。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

已解决

printfn " true | %5b | %5b |" ((&&) true true) ((&&) true false)

打印

true |  true | false |