J语言匿名动词中'm'代表什么?为何可实现后缀运算符?
J语言匿名动词中
m的特殊用法解析 你遇到的是J语言里一个小众的语法细节:m在{{ ... }}定义的匿名结构中,会让这个结构被解析为后缀式一元动词,而非普通的二元动词。
具体分析:
- 当你写
1 {{ 1 + m }}时,J会把{{ 1 + m }}识别成一个一元动词,m就代表前面的参数1(也就是这个一元动词的输入),所以计算1+1得到结果2。这种写法允许你把一元动词放在参数后面,像后缀运算符一样使用。 - 而如果换成
x或y,J会默认把{{ ... }}解析为二元动词(x是左参数占位符,y是右参数占位符)。此时你只提供了左参数1,缺少必需的右参数,因此触发语法错误。比如想正常使用二元动词,得写成1 {{ x + y }} 2(结果为3),同时提供左右两个参数。
这种m的用法属于J语言的边缘语法细节,官方wiki确实没有专门的文档说明,更多是社区实践中流传的技巧。
内容的提问来源于stack exchange,提问作者Pig
相关产品推荐
相关产品推荐

