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

A. Существительные

Существительные имеют три независимых характеристики: числовые они, текстовые или символы; упакованные или нет; их ранг. Все атомы любого массива должны принадлежать одному классу: числовому, текстовому, быть символами или упаковками (массив упаковок называется упаковочным). Массивы рангов 0, 1 и 2 называются так же атом, список, и таблица; или (как в математике) скаляр, вектор, и матрица. Представление чисел и текста описано в Главе I; обсуждение символов см. в определении глагола s: .

Массивы. Одиночный обьект, такой как 2.3 , _2.3j5 , 'A' или '+' называется атомом. Глагол, обозначаемый запятой, соединяет свои аргументы последовательно и формирует список с размерностью (ее можно запросить глаголом $), равной количеству присоединенных атомов. Например:
   $ date=: 1,7,7,6               word=: 's','a','w'
4
   |. date                        |. word
6 7 7 1                        was
Использованный выше глагол |. , называется перевернуть. Фраза s$b производит из списка b массив размерности s . Например:
   (3,4) $ date,1,8,6,7,1,9,1,7
1 7 7 6
1 8 6 7
1 9 1 7

   table=: 2 3$ word,'bat'
   table                         $table
saw                           2 3
bat
Количество атомов в размерности существительного называется его рангом. Элементы размерности называются измерениями массива, на них можно ссылаться по индексу 0, 1, 2, и т.д. Например, измерение 0 существительного table имеет длину 2, а измерение 1 длину 3.

Последние k измерений массива b представляют собой ячейки ранга k или k-ячейки b. Остальная часть вектора размерности называется остовом b относительно ячеек ранга k; если $c есть 2 3 4 5, то c имеет остов 2 3 относительно ячеек ранга 2, остов 2 3 4 5 относительно 0-ячеек (атомов), и пустой остов относительно 4-ячеек. Если:
   ] b=:2 3 4 $ 'abcdefghijklmnopqrstuvwx'
abcd
efgh
ijkl

mnop
qrst
uvwx
то список abcd есть 1-ячейка b, а каждая из букв в нем представляет собой 0-ячейку.

Ячейка ранга, на единицу меньшего ранга b , называется элементом b; атом имеет один элемент: сам атом. Например, глагол взять (обозначаемый { ) выбирает элементы своего правого аргумента по индексу):
   0{b                 1{b                 0{0{b
abcd                mnop                abcd
efgh                qrst
ijkl                uvwx
            
   2 1{0{b             1{2{0{b             0{3
ijkl                j                   3
efgh
Далее, глагол по возрастанию (обозначаемый /:) возвращает индексы к { , переставляющие элементы в “лексическом” порядке. Таким образом:
   g=: /: n=: 4 3$3 1 4 2 7 9 3 2 0
   n                   g                   g{n
3 1 4               1 0 3 2             2 7 9
2 7 9                                   3 1 4
3 2 0                                   3 1 4
3 1 4                                   3 2 0
Отрицательные ранги ячеек, как в случаях _2-ячейки и _1-ячейки (элемента), обозначают ячейки, соответствующие остовы которых имеют длину, равную абсолютной величине числа. Например, на список abcd можно сослаться либо как на _2-ячейку, либо как на 1-ячейку b .

Упаковки. Обсуждаемые до сих пор существительные называются открытыми, чтобы отличить их от упаковок, производимых глаголом упаковать < . Упакованные существительные отображаются в рамках, а вся упаковка целиком является атомом. Упаковка позволяет работать с любым массивом (например, списком букв, представляющим слово) как с одиночным обьектом, тоесть атомом. Таким образом:
   words=:(<'I'),(<'was'),(<'it')
   letters=: 'I was it'          
   $words                        $letters
3                             8

   |. words                      |. letters
+--+---+-+                    ti saw I
|it|was|I|
+--+---+-+
   2 3$words,|.words
+--+---+--+
|I |was|it|
+--+---+--+
|it|was|I |
+--+---+--+



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