>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь

8. Союз "Поверх"

Союз @ в применении к двум глаголам производит глагол, соответствующий применению первого поверх второго. Например:
   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.)           Карта таблицы сложения


>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь