| Голова | {. _ 1 _ | Взять |
{.y выбирает первый элемент y (или
элемент заполнителя, если элементы в y отсутствуют);
тоесть {.y
↔ 0{1{.y .
Таким образом:
a=: i. 3 2 3
a;({.a);({."2 a);({."1 a)
+--------+-----+--------+-----+
| 0 1 2|0 1 2| 0 1 2| 0 3|
| 3 4 5|3 4 5| 6 7 8| 6 9|
| | |12 13 14|12 15|
| 6 7 8| | | |
| 9 10 11| | | |
| | | | |
|12 13 14| | | |
|15 16 17| | | |
+--------+-----+--------+-----+
]b=: ;/a
+-----+-------+--------+
|0 1 2|6 7 8|12 13 14|
|3 4 5|9 10 11|15 16 17|
+-----+-------+--------+
{.&> b
0 1 2
6 7 8
12 13 14
{. i.0 3
0 0 0
|
Если x атом, x{.y выбирает |x последовательных
элементов y (начиная с
начала, при x положительном; заканчивая в конце,
при отрицательном). В случае нехватки (когда число запрашиваемых элементов превышает количество элементов в массиве) добавляются дополнительные элементы, состоящие из заполнителя (нулей, если y числовой; a: , если упаковочный; пробелов, если текстовый; и s: ' ' , если символьный). Атом заполнителя f можно настроить при помощи {.!.f . В общем случае, если y не атом, x может быть списком не длиннее $$y элементов; а если y атом, вместо него берется ((#x)$1)$y . Элемент k производит (k{x){."(($$y)-k) y ; бесконечность заменяется на величину размерности вдоль соответствующего измерения. |
y=: i. 3 4
y;(2{.y);(5{.y);(_5{.y);(_6{.'abcd');(2 _3{.y)
+---------+-------+---------+---------+------+-----+
|0 1 2 3|0 1 2 3|0 1 2 3|0 0 0 0| abcd|1 2 3|
|4 5 6 7|4 5 6 7|4 5 6 7|0 0 0 0| |5 6 7|
|8 9 10 11| |8 9 10 11|0 1 2 3| | |
| | |0 0 0 0|4 5 6 7| | |
| | |0 0 0 0|8 9 10 11| | |
+---------+-------+---------+---------+------+-----+
2 {."1 y
0 1
4 5
8 9
_ 2 {. y
0 1
4 5
8 9
6{.'ab';'cde';'fghi'
+--+---+----++++
|ab|cde|fghi||||
+--+---+----++++