我试图以这样的方式做 20 + 10
:
(10&+~) 20
然后我意识到副词&
有“短右手”的意思。所以应该是
(10&(+~)) 20
这给了我正确答案:30。但只是出于好奇
(10&+~) 20
给出 220。为什么?
更奇怪的是,
(10&+~) 0.1
给出“域错误”
最佳答案
(10&+~) 20
是 10 (&+~) 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/