自定义 infix 函数默认的优先级和结合性
- m # n = m + n
复制代码
run
- *Main> 1 ^ 2 # 3
- 1
- *Main> :i (#)
- (#) :: (Num a) => a -> a -> a -- Defined at t.hs:3:2
- *Main> :i (^)
- (^) :: (Num a, Integral b) => a -> b -> a -- Defined in GHC.Real
- infixr 8 ^
- *Main> 1 # (+2).(*3) 4
- <interactive>:1:0:
- precedence parsing error
- cannot mix `(#)' [infixl 9] and `(.)' [infixr 9] in the same infix expression
- *Main> sqrt 1 # 1
- 2.0
复制代码
# 的优先级竟然比 ^ 还高
# 的优先级和结合性:(本来想发帖问一下捏,没想到错误提示里竟然有其结合性和优先级 )
infixl 9
左结合性、优先级为 9(达到顶层了)
只是比 function apply 低一个等级
[ 本帖最后由 izhier 于 2009-4-28 13:16 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论