[英]Infix function evaluation with $
$是具有最低优先级的中缀运算符:
f $ a = fa
这不表示在下面的表达式中
$ 2 ^ 2
应该先评估后再加$ 2? 似乎2 + 2被首先评估
前奏>(2 ^)$ 2 + 2
返回:
16
不能。请优先考虑优先级,而不是优先考虑“先评估”的内容,而更多地考虑插入括号的位置。
$
具有最低的优先级这一事实意味着,括号会插入在其右侧的所有内容周围(如果需要,也可以在其左侧单独插入,但此处不需要)。 所以
(2 ^)$ 2 + 2
相当于
(2 ^)$(2 + 2)
当然是
(2 ^)4(即16)
优先级规则可能会造成混淆,但是我喜欢将其视为“较低优先级”表示“稍后再执行”。 由于$
的优先级最低(例如,低于(+)
),因此它在 (+)
之后执行。 因此(2^) $ 2 + 2
(2^)
评估为部分应用的函数,然后将2+2
评估为4
,然后将4
应用于2^
得到16
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.