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

Прямое Произведение {  1 0 _ Выбрать

{y формирует прямое произведение всех атомов своего аргумента; размерность производимого упаковочного массива получается соединением размерностей распакованных элементов y , а его распакованные элементы имеют (одинаковую) размерность $y . Например:
   { 'ht';'ao';'gtw'
+---+---+---+
|hag|hat|haw|
+---+---+---+
|hog|hot|how|
+---+---+---+
+---+---+---+
|tag|tat|taw|
+---+---+---+
|tog|tot|tow|
+---+---+---+
При помощи { можно легко определить Декартово произведение (Cartesian product):
   CP=: {@(,&<)
   0 1 CP 2 3 4
+---+---+---+
|0 2|0 3|0 4|
+---+---+---+
|1 2|1 3|1 4|
+---+---+---+
  Если x целое в диапазоне от -n=: #y до n-1 , то x{y выбирает элемент n|x из y . Тоесть:
   2 0 _1 _3 { 'abcdefg'
cage

   t=:3 4$'abcdefghijkl'
   1{t
efgh
В более общем случае, >x может быть (возможно упаковочным) списком, элементы которого являются массивами, указывающими на выборку вдоль последовательных измерений y .

Наконец, если любой из r=:>j{>x все еще упакован, выборка производится по индексам (вдоль соответствующего измерения), которые отсутствуют в >r .

Заметьте, что результатом последнего диадного примера, тоесть (<<<_1){m , является все кроме последнего элемента.
 

   t=: 3 4 $ 'abcdefghijkl'
   t; (1{t); (2 1{t); (1{"1 t); ((,1){"1 t); (2 1{"1 t)
+----+----+----+---+-+--+
|abcd|efgh|ijkl|bfj|b|cb|
|efgh|    |efgh|   |f|gf|
|ijkl|    |    |   |j|kj|
+----+----+----+---+-+--+

   t; (2 0{t); ((<2 0){t); ((2 0;1 3){t); ((<2 0;1 3){t)
+----+----+-+--+--+
|abcd|ijkl|i|ih|jl|
|efgh|abcd| |  |bd|
|ijkl|    | |  |  |
+----+----+-+--+--+

   (_1{m); (_1{"2 m); (_1{"1 m); (<<<_1){m=:i.2 3 4
+-----------+-----------+--------+---------+
|12 13 14 15| 8  9 10 11| 3  7 11|0 1  2  3|
|16 17 18 19|20 21 22 23|15 19 23|4 5  6  7|
|20 21 22 23|           |        |8 9 10 11|
+-----------+-----------+--------+---------+



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