3

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

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

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

和 2 不会对该列表采取行动 - 那么我哪里出错了?

4

2 回答 2

5

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

(* i.) 5, 是一个单子钩子,翻译为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

于 2015-03-21T16:41:59.577 回答
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
于 2015-03-21T16:44:12.433 回答