理解 J 中具有文字值的火车

Understanding trains with literal values in J

我确定这是显而易见的,但我对此有点不清楚。假设我想让一个函数做类似 f(x) = 3x+1 的事情。知道叉子的规则,我希望看到这样的东西: [: 1&+ 3&* 这对我来说 不是 美丽,但我想 (1&+) @: (3&*) 看起来更好额外的括号。相反,如果我用 13: 查询,我会得到这个:

   13 : '1+3*y'
1 + 3 * ]

更漂亮,但我不明白这怎么可能。 ] 是恒等函数,*+ 正在做它们通常的事情,但是文字在这里是如何工作的?为什么 J 不尝试 "call" 1 和 3 带有参数,就好像它们是函数一样?我注意到,如果我用 [] 替换任何常量,这将继续做正确的事情,所以我认为它正在将其解释为某种火车,但我不确定.

刚开始描述J的时候,forks都是动词(V V V),后来决定让名词在左边的tine位置,return它们的面值。所以 (N V V) 也被视为一个分支。在一些较旧的代码中,您可以看到叉子的左齿显示为 'verbified' 名词,例如 1:'a'"_ 充当动词 return 它们的面值给出任何参数。

(N V V) 配置在字典中描述为 "The train N g h (a noun followed by two verbs) is equivalent to N"_ g h ." http://www.jsoftware.com/help/dictionary/dictf.htm