小编And*_*ler的帖子

函数应用的优先级

为了说明函数应用程序在 Haskell 中具有最高优先级,提供了以下示例(由 schoolofhaskell 提供):

sq b = b * b
main = print $
-- show
    sq 3+1 
-- /show
Run Code Online (Sandbox Code Playgroud)

这里的结果是 10。

让我困惑的是,这个参数也构成了一个函数应用。将运算符+视为函数的快捷方式。因此,当采用该参数时,我希望它的函数应用程序现在优先于原始函数应用程序。

这样写就可以达到预期的结果:

sq b = b * b
main = print $
    sq ((+) 3 1 )
Run Code Online (Sandbox Code Playgroud)

有什么解释吗?

haskell operator-precedence

3
推荐指数
1
解决办法
1035
查看次数

标签 统计

haskell ×1

operator-precedence ×1