J默认短语评估

时间:2015-03-21 12:44:09

标签: j tacit-programming

为什么2(*i.)5评估为0 2 4 6 8

2*i.5很明显,()创建了一个钩子并从右到左进行评估,似乎我们得到了

 (*i.)5  ==  0 5 10 15 20

和2将不会对该列表采取行动 - 所以我哪里错了?

2 个答案:

答案 0 :(得分:5)

2 (* i.) 5,是一个二元钩子,转换为2 * (i. 5)

(* i.) 5,是一个monadic hook,转换为5 * (i. 5)

二元钩x (u v) y相当于x u (v y),与x u v y相同。

monadic hook (u v) y相当于y u (v y),与y u v y相同。

http://www.jsoftware.com/jwiki/Vocabulary/hook

答案 1 :(得分:3)

x (u v) y< - > x u (v y)用于二元钩子。

用途可能是将y重塑为x形状,如图所示 http://www.jsoftware.com/jwiki/Vocabulary/hook

   [t=.i. 3 2
0 1
2 3
4 5

   2 3 ($ ,) t
0 1 2
3 4 5