18!:0 y |
Класс Названия. Возвращает класс пространства имен с названием y,
где 0 обозначает именованое, 1 нумерованое, _1
несуществующее, и _2, если слово не может служить названием
пространства имен. Таким образом:
18!:0 ;:'base j z 45bad asdf 0'
0 0 0 _2 _1 1
|
[x] 18!:1 y |
Список Названий. Возвращает названия именованых (0) нумерованых (1)
полей имен.
Необязательный левый аргумент позволяет указать начальные буквы возвращаемых названий. Таким образом:
18!:1 [0 Все именованые поля имен
+----+-+----+--------+-------+-+
|base|j|jcfg|jnewuser|newuser|z|
+----+-+----+--------+-------+-+
asdf_bb_=: 'sesquipedalian'
'jb' 18!:1 [0 Все именованые, с названиями на j или b
+----+--+-+----+--------+
|base|bb|j|jcfg|jnewuser|
+----+--+-+----+--------+
18!:3 '' Создать нумерованое поле имен
+-+
|0|
+-+
18!:1 i.2 Все именованые и нумерованые поля имен
+-+----+-+----+--------+-------+-+
|0|base|j|jcfg|jnewuser|newuser|z|
+-+----+-+----+--------+-------+-+
|
[x] 18!:2 y |
Путь. Монада возвращает путь поиска имен для поля с
названием y ; диада устанавливает путь для
поля y в x .
Изначально путь имеет значение ,<,'z' ,
кроме пути для поля z, который изначально пуст.
Если имя, искомое в поле f, там отсутствует,
тогда оно ищется в полях пути f
(не включая их пути). Например:
(;:'a cd b') 18!:2 <'f'
18!:2 <'f'
+-+--+-+
|a|cd|b|
+-+--+-+
Путь поля f установлен в a , cd ,
и b .
|
|
[x] 18!:3 y |
Создать. Если y — пустая строка, создается
нумерованое поле имен с ранее неиспользованным номером.
Если y — строка, тогда (вос-)создается именованое поле;
если названное поле уже существует и непустое, выводится ошибка.
Результатом является название созданного поля.
x указывает размер хеш-таблицы для поля имен,
занимающей w*2^6+x байт, где w есть число
байт в машинном слове. Если x опущено, используются умолчания,
установленные 9!:38 и 9!:39 .
Больший размер хеш-таблицы улучшает производительность;
поле может содержать (практически) не ограниченное количество имен,
вне зависимости от размера хеш-таблицы.
18!:3 '' Создать нумерованое поле
+-+
|0|
+-+
18!:3 '' Создать еще одно
+-+
|1|
+-+
18!:1 [1 Названия нумерованых полей
+-+-+
|0|1|
+-+-+
|
18!:4 y |
Переключить Текущее. По окончании выполняемого в данный момент
глагола, текущим полем имен становится y .
Изначально текущим полем является base .
|
|
18!:5 y |
Текущее. Имя текущего поля. Например:
18!:5 ''
+----+
|base|
+----+
|
18!:55 y |
Стереть. По окончании выполнения глагола, стирает поле y.
Стертое нумерованое поле нельзя использовать повторно;
повторное использование именованого поля возможно без ограничений.
|