Haskell中的运算符优先级

גלע*_*רקן 6 haskell

我对Haskell中运算符优先级的规则感到困惑.
更具体地说,为什么:

*Main> 2 * 3 `mod` 2
0
Run Code Online (Sandbox Code Playgroud)

与此不同?

*Main> 2 * mod 3 2
2
Run Code Online (Sandbox Code Playgroud)

Pub*_*bby 13

函数调用绑定最紧密,等等

2 * mod 3 2
Run Code Online (Sandbox Code Playgroud)

是相同的

2 * (mod 3 2)
Run Code Online (Sandbox Code Playgroud)

请记住,mod这里没有用作操作员,因为没有反引号.

现在,当mod在中缀形式中使用时,它的优先级为7,(*)也有.由于它们具有相同的优先级,并且是左关联的,因此只需从左到右进行解析:

(2 * 3) `mod` 2
Run Code Online (Sandbox Code Playgroud)