Почему 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
.
Монадический хук (u v) y
эквивалентен y u (v y)
, который совпадает с y u v y
.
http://www.jsoftware.com/jwiki/Vocabulary/hook
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