运算符优先级和关联

Wor*_*ice 2 f# operators

我定义了一个XOR运算符:

let (.||.) x y = (x || y) && not(x && y)
Run Code Online (Sandbox Code Playgroud)

这样

true .||. true
true .||. false
Run Code Online (Sandbox Code Playgroud)

做回falsetrue分别.

根据Hansen和Rischel的说法,&&运营商的优先级高于||运营商(以及.||.运营商.因此,为什么

    true .||. true && false
    true .||. false && true
Run Code Online (Sandbox Code Playgroud)

做回falsetrue分别?结果似乎是由(true .||. true) && false而不是预期产生的 true .||. (true && false).

Fyo*_*kin 7

根据MSDN,运营商.||.将属于该模式|op(即忽略前导点,从管道开始),这是&&表中运营商下方的两条线,&op<op其他线路在同一条线上.所以它实际上具有更高的优先级&&.

F#规范说,在第4.4.2节同样的事情,只有表是倒挂在那里(最高到最低).

无法评论你正在阅读的书,没有它得心应手.