TriplePowersOf2=: (3&*)@(2&^)
TriplePowersOf2 0 1 2 3 4
3 6 12 24 48
CubeOfDiff=: (^&3)@-
3 4 5 6 CubeOfDiff 6 5 4 3
_27 _1 1 27
f=: ^@- Правый глагол сначала применяется диадно,
если возможно; левый применяется монадно.
5 f 3
7.38906
f 3
0.0497871
g=: -@^
5 g 3
_125
g 3
_20.0855
Как и наречия, cоюзы выполняются перед глаголами.
Их левым аргументом считается все предшествующее глагольное выражение.
Соответственно, некоторые (но не все) скобки в предыдущих определениях
можно опустить. Например:COD=: ^&3@- 3 4 5 6 COD 6 5 4 3 _27 _1 1 27 TPO2=: 3&*@(2&^) TPO2 0 1 2 3 4 3 6 12 24 48 tpo2=: 3&*@2&^ Ошибка, поскольку союз @ определен |domain error только для глагольного правого аргумента | tpo2=: 3&*@2&^
Упражнения
| 8.1 | Закройте комментарии справа и опишите действие,
производимое программами. Потом закройте программы
и запишите их снова, используя описания на русском:
mc=: (+/%#)@|: Среднее столбцов таблицы
f=: +/@(^&2) Сумма квадратов элементов списка
g=: %:@f Геометрическая длина списка
h=:{&' *'@(</) Карта сравнения (диада)
k=: i. h i. Карта (монада)
map=: {&'+-* %#$' Карта из 7-ми символов
MAP=: map@(6&<.) Расширенный диапазон для map
add=: MAP@ (i.+/i.) Карта таблицы сложения
|