J:将两个参数应用于一元动词会产生奇怪的结果

标签 j

我想知道如果我对这个动词应用两个参数会发生什么:3&*。 如果左边的是1,那么所有的工作就好像它只有一个参数一样:

   1 (3&*) 3
9
   1 (3&*) 4
12
   1 (3&*) 5
15

如果我改变它,我就会发现为什么它有效:

   2 (3&*) 5
45
   3 (3&*) 5
135
   10 (3&*) 5
295245

看起来左边的参数被解释为像 ^: 这样的重复。所以最后一个等于 3 * 3 * 3 * 3 * 3 * 3 * 3 * 3 * 3 * 3 * 5(10 个 3),或者:

   5 * 3^10
295245

你能解释一下这种奇怪的行为吗?我期待类似 domain error (这是普遍存在的),如果我尝试使用 fndisplay 就会抛出这个错误:

   require 'j/addons/general/misc/fndisplay.ijs'
   defverbs 'f'
   defnouns 'x y n'
   x (n&*) y
|domain error
|   x    (n&*)y

最佳答案

已记录。

x m&v y ↔ m&v^:x y

x u&n y ↔ u&n^:x y

&Bond from J dictionary

关于J:将两个参数应用于一元动词会产生奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18746073/

相关文章:

j - 排名如何运作?

j - 如何在 J 中使用索引函数定义选择

linux - 如何在远程 Linux 服务器上启动 jhs 并从远程客户端(如 chromebook)访问它

matrix - J:输入矩阵的简便方法?

j - 身份函数(用于 fork ,例如)

j - 强制数组而不是J中的矩阵“i”。

j - J短语: 10&+~20的含义

j - 如何在 J 中没有默认 x 轴的情况下绘图?

recursion - 在J中创建递归默认函数

J 默契词评价