j - J短语: 10&+~20的含义

标签 j

我试图以这样的方式做 20 + 10:

(10&+~) 20

然后我意识到副词&有“短右手”的意思。所以应该是

(10&(+~)) 20

这给了我正确答案:30。但只是出于好奇

(10&+~) 20

给出 220。为什么?

更奇怪的是,

(10&+~) 0.1

给出“域错误”

最佳答案

(10&+~) 2010 (&+~) 20。这看起来像 fork 或钩子(Hook),但不是因为 ~& 是特殊的雪花。 ~要先处理,所以你的表达式是10(&+)~20。现在,&+不能自立,所以~必须在这里自反。你现在的表情是

20 (10 (&+)) 20

现在导致特殊的二元情况 bond-& 成为幂 (^:):x m&v y ↔ m&v^:x y。所以,最后,表达式变成:

(10&+)^:20 ] 20
220

显然,您不能对非整数使用幂,因此 (10&+~)0.1 是域错误。

关于j - J短语: 10&+~20的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29375561/

相关文章:

j - 为什么右边的动词 ] 有返回值,而左边的动词 [?

math - J 函数不起作用

arrays - 对J Tally的误解(#)

j - 如何在 Linux 上运行独立的 ijs j 文件?

j - 用于创建数字矩阵的最简洁的 J 语法

csv - 将 CSV 文件的列读取为数组

j - 按照 J 中指定的模式生成数据

j - 在 J 编程中定义动词摄氏度

j - 是 J 关联的火车

functional-programming - 为什么此J函数无法运行?