什么构成J动词的数组参数的"兼容形状"?

J C*_*per 4 arrays arguments j

我在学习(和有我的脑中吹)J和阅读的过程中学习Ĵ.我注意到我一直在学习的许多(全部?)动词都非常灵活.我可以做传统的4 - 2,或者我可以使用它与列表,例如4 5 - 3 4,甚至可以做到3 4 5 - 1这似乎"促进"运算符的右侧到阵列,即使我只是给它一个标量.

我假设后一行为被ch包含在这一行中.上述文字中的2个:

因此,=的两个参数必须具有相同的形状(或者至少,如在Y = 2的示例中,兼容的形状).否则会导致错误.

的确,这3 4 5 - 2 3是一个错误."兼容形状"的技术定义是什么?它是否像"相同的形状或标量"一样简单,还是更多呢?

Tik*_*anz 5

从词典页面B.动词:

协议.在短语中p v q,参数v必须在一个框架必须是另一个框架的前缀的意义上达成一致

所以以下一切都会奏效

  (i. 2 3) * (i. 2 3 4)     NB. frame of left arg is prefix of the right arg
  (i. 2) * (i. 2 3 4)       NB. frame of left arg is prefix of the right arg
  (i. 2 3 4) * (i. 2 3)     NB. frame of right arg is prefix of the left arg
Run Code Online (Sandbox Code Playgroud)

有关框架的正式定义,请参阅字典页面A.名词

我建议将这部分J用于C程序员作为对这些概念的全面介绍.