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

时间:2013-09-11 16:03:17

标签: 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

1 个答案:

答案 0 :(得分:4)

记录在案。

  

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

     

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

&Bond from J dictionary