关于优先级的中缀函数的奇怪行为

时间:2017-04-15 22:23:12

标签: haskell operator-precedence

我正在使用(-1) `bool` 1 True 功能。 我想使用中缀版本,因为我虽然它更具可读性,但我注意到了:

(-1) `bool` 1 $ True

是错误

(-1) `bool` 1 (True)

的工作原理。甚至

$

不起作用,我认为直到现在这是一个相同的替代方案(即使用qDebug().noquote() << test.replace(" ", "\\ "); 与从此位置括起来直到结尾的方括号

这怎么可能有所作为?在第一个版本中,只有一个操作。

1 个答案:

答案 0 :(得分:4)

中缀运算符松散绑定,应用程序绑定紧密。

(-1) `bool` 1 True
-- means
(-1) `bool` (1 True)


(-1) `bool` 1 $ True
-- means
((-1) `bool` 1) $ True


(-1) `bool` 1 (True)
-- means
(-1) `bool` (1 (True))

你可能想要:

((-1) `bool` 1) True