为什么2(*i.)5
的计算结果是0 2 4 6 8
?
很明显,2*i.5
是这样做的,但是()
创建了一个钩子,并从右到左对它进行评估,似乎我们得到了
(*i.)5 == 0 5 10 15 20
而2不会按照这个列表行动--那么我哪里错了呢?
发布于 2015-03-22 00:42:00
2 (* i.) 5
是一个二元钩子,翻译过来就是2 * (i. 5)
。
(* i.) 5
是一个一元钩子,翻译过来就是5 * (i. 5)
。
二元钩子x (u v) y
等同于x u (v y)
,它与x u v y
相同。
一元钩子(u v) y
等同于y u (v y)
,后者与y u v y
相同。
http://www.jsoftware.com/jwiki/Vocabulary/hook
发布于 2015-03-22 00:44:12
用于二元挂钩的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
https://stackoverflow.com/questions/29182859
复制相似问题