我想知道如果我对这个动词应用两个参数会发生什么: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
最佳答案
关于J:将两个参数应用于一元动词会产生奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18746073/