为什么2(*i.)5
评估为0 2 4 6 8
?
2*i.5
很明显,()
创建了一个钩子并从右到左进行评估,似乎我们得到了
(*i.)5 == 0 5 10 15 20
和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
相同。
答案 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