为什么2(*i.)5评价为0 2 4 6 8?
很明显,2*i.5确实如此,但是()创建了一个钩子并从右到左进行评估,似乎我们得到了
(*i.)5 == 0 5 10 15 20
和 2 不会对该列表采取行动 - 那么我哪里出错了?
为什么2(*i.)5评价为0 2 4 6 8?
很明显,2*i.5确实如此,但是()创建了一个钩子并从右到左进行评估,似乎我们得到了
(*i.)5 == 0 5 10 15 20
和 2 不会对该列表采取行动 - 那么我哪里出错了?
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。
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