首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用$ Infix函数计算

用$ Infix函数计算
EN

Stack Overflow用户
提问于 2015-08-29 16:33:21
回答 2查看 161关注 0票数 1

$是具有最低可能优先级的infix运算符:

F$a=f a

这不意味着,在下面的表达中,

$2^2

应该先评估然后再加$ 2?看来2+2是第一个评估的。

Prelude> (2^) $2+2

返回:

16

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-29 16:44:45

不是的。试着考虑优先级,而不是考虑什么是“先计算”,更多的是考虑插入括号的位置。

事实上,$具有最低的优先级,这意味着在它的右侧(如果需要的话,将括号分别插入到它的左边,但这里不需要它们)。所以

(2^) $2+2

等于

(2^) $ (2 + 2)

这当然是

(2^) 4(即16)

票数 4
EN

Stack Overflow用户

发布于 2015-08-29 16:43:19

优先规则可能会令人困惑,但我喜欢将其视为“较低优先级”的意思是“以后做”。因为$的优先级最低(例如,低于(+)),所以它是在(+)之后执行的。因此,(2^) $ 2 + 2(2^)计算为部分应用的函数,然后计算2+24,然后将4应用于2^以获取16

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32288288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档