我确信这是显而易见的,但我对此有点不清楚。假设我想让一个函数执行类似 f(x) = 3x+1
的操作。了解了 fork 的规则后,我希望看到这样的内容:[: 1&+ 3&*
,这对我来说不是那么漂亮,但我想看起来更好(1&+) @: (3&*)
加上额外的括号。相反,如果我使用 13:
查询,我会得到:
13 : '1+3*y'
1 + 3 * ]
更漂亮,但我不明白这怎么可能。 ]
是恒等函数,*
和 +
正在做它们通常的事情,但是文字在这里是如何工作的呢?为什么 J 不尝试用参数“调用”1 和 3,就好像它们是函数一样?我注意到,如果我用 [
或 ]
替换任何常量,这将继续做正确的事情,所以我认为它将其解释为某种火车,但我不确定。
最佳答案
当J第一次被描述时, fork 都是动词(V V V)
,但后来决定让名词位于左齿位置并返回它们的面值。因此 (N V V)
也被视为 fork 。在一些较旧的代码中,您可以看到 fork 的左齿显示为“动词化”名词,例如 1:
或 'a'"_
充当动词,当给出任何参数时返回它们的面值。
(N V V)
配置在字典中被描述为“火车N g h
(一个名词后跟两个动词)相当于N”_ g h
."http://www.jsoftware.com/help/dictionary/dictf.htm
关于j - 理解 J 中文字值的列车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47062713/