Встроенные функции Флэнга
Работа с хэш-таблицами


Обзор функций
Hash newHash()
          Порождает новую пустую хэш-таблицу.
Hash newHash(List/Vector Contents)
          Создает новую хэш-таблицу с парами ключ-значение, перечисленными в Contents в виде списков или векторов, элементами которых являются термы вида ключ/значение. Элементами списка/вектора могут быть также другие hash-таблицы. В этом случае функция переносит в новую хэш-таблицу данные из этих хэш-таблиц.
Hash hClear(Hash H)
          Удаляет все ключи и значения из hash-таблицы
Hash hClone(Hash H)
          Делает копию hash-таблицы
Boolean hasValue(Hash H, Object V)
          проверяет, содержится ли значение V в таблице H
Boolean hasKey(Hash H, Object K)
          Проверяет наличие ключа K в таблице H
Object hGet(Hash H, Object K)
          Выдает значение, соответствующее ключу K
Boolean hPut(Hash H, Object K, Object V)
          Добавляет в таблицу H пару ключ-значение
hRemove(Hash H, Object K)
          Удаляет из таблицы H ключ K с соответствующими значениями.
Hash getContext(Hash OldEnv, Hash NewEnv)
          Объединяет hash-таблицы (контексты) OldEnv и NewEnv. Значения общих ключей выбираются из нового контекста NewEnv

Описание функций

newHash/0

Hash newHash()
    
Порождает новую пустую хэш-таблицу.

Аргументы:
Подробнее...

newHash/1

Hash newHash(List/Vector Contents)
    
Создает новую хэш-таблицу с парами ключ-значение, перечисленными в Contents в виде списков или векторов, элементами которых являются термы вида ключ/значение. Элементами списка/вектора могут быть также другие hash-таблицы. В этом случае функция переносит в новую хэш-таблицу данные из этих хэш-таблиц. Аргумент функции может быть как вектором, так и списком. При порождении хэш-таблицы функция перебирает элементы Contents аналогично тому, как это делает перечисление eFlat. Поэтому аргумент функции может содержать вложенные списки и вектора и их смешение. Элементарными единицами Contents могут быть термы вида n/v, где n и v - произвольные элементы, а также другие хэш-таблицы. В последнем случае в порождаемую хэш-таблицу добавляется содержимое этой хэш-таблицы.

Аргументы:
Contents - содержимое хэш-таблицы
Подробнее...

hClear/1

Hash hClear(Hash H)
    
Удаляет все ключи и значения из hash-таблицы

Аргументы:
H - очищаемая hash-таблица
Подробнее...

hClone/1

Hash hClone(Hash H)
    
Делает копию hash-таблицы

Аргументы:
H - клонируемая hash-таблица
Подробнее...

hasValue/2

Boolean hasValue(Hash H, Object V)
    
проверяет, содержится ли значение V в таблице H предикат

Аргументы:
H - hash-таблица, в которой проверяется значение
V - проверяемое значение
Подробнее...

hasKey/2

Boolean hasKey(Hash H, Object K)
    
Проверяет наличие ключа K в таблице H предикат

Аргументы:
H - hash-таблица, в которой проверяется наличие ключа
K - ключ, проверяемый на наличие в таблице
Подробнее...

hGet/2

Object hGet(Hash H, Object K)
    
Выдает значение, соответствующее ключу K

Аргументы:
H - hash-таблица, в которой ведется поиск
K - ключ, по которому ведется поиск
Подробнее...

hPut/3

Boolean hPut(Hash H, Object K, Object V)
    
Добавляет в таблицу H пару ключ-значение

Аргументы:
H - таблица, в которую включается пара ключ-значение
K - ключ
V - значение
Подробнее...

hRemove/2

 hRemove(Hash H, Object K)
    
Удаляет из таблицы H ключ K с соответствующими значениями.

Аргументы:
H - таблица, из которой удаляется ключ
K - удаляемый ключ
Подробнее...

getContext/2

Hash getContext(Hash OldEnv, Hash NewEnv)
    
Объединяет hash-таблицы (контексты) OldEnv и NewEnv. Значения общих ключей выбираются из нового контекста NewEnv Функция в первую очередь ориентирована на обработку xml- и html-термов. Пример: объединение множеств атрибутов getContext(newHash([color="red", size="15"], newHash([color="blue", font="Arial"]) дает hash-таблицу {color/"blue", size/"15", font/"Arial"}

Аргументы:
OldEnv - изменяемый контекст (набор пар ключ/значение)
NewEnv - изменяющий контекст
Подробнее...