j - 理解 J 中文字值的列车

标签 j

我确信这是显而易见的,但我对此有点不清楚。假设我想让一个函数执行类似 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/

相关文章:

j - 二元组 `=` 对盒装字符串有何作用?

j - 结合新数据进行修正显示出意外的行为

j - 用 J 中的每次替换修改多个索引

J : Iverson's `table` function from _A Personal View of APL_

arrays - 对J Tally的误解(#)

j - J 中的每个前置副词

j - 如何通过索引从J中的列表中删除元素?

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

j - 给定动名词,如何计算 f1(f2(...fn(x)...))?

for-loop - J 编程初学者循环