>>
<<
Ркв
Ввд
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
Фрз
Слв
Изм
Рзг
!:
Помощь
Словарь