Mnas-Hash-Table » MNAS-HASH-TABLE

Описание: пакет mnas-hash-table определяет некоторые функции для работы с хеш-таблицами.

Пакет содержит следующие применимые к хеш-таблицам функции:

Функции

populate(hash-table 2d-list key-index value-index)

Описание: функция populate добавляет в хеш-таблицу hash-table элементы, находящиеся в таблице 2d-list в качестве ключей используются элементы, находящиеся в позиции key-index в качестве значений используются элементы, находящиеся в позиции value-index.

Пример использования:

(print-items
 (populate (make-hash-table :test #'equal)
	    '(("key_1" "val_1" "Vval_1")
	      ("key_2" "val_2" "Vval_2")
	      ("key_3" "val_3" "Vval_3")
	      ("key_4" "val_4" "Vval_4"))
	    0 2)) => 
 "key_1" "Vval_1"
 "key_2" "Vval_2"
 "key_3" "Vval_3"
 "key_4" "Vval_4"

hash-table-copy(hash-table)

Описание: функция hash-table-copy возвращает копию хеш-таблицы hash-table.

Пример использования:

(let* ((ht-1 (populate (make-hash-table) '((1 2 3)(4 5 6)(7 8 9)) 1 2))
         (ht-2 (hash-table-copy ht-1)))
    (list (eq ht-1 ht-2)
          (equal ht-1 ht-2)
          (equalp ht-1 ht-2)
          (to-list ht-1)
          (to-list ht-2)))

print-items(hash-table &key (stream t) (field-format ~S) (field-separator ) (line-separator ~%))

Описание: функция print-items выводит содержимое хеш-таблицы hash-table в поток stream.

Пример использования:

(print-items
 (populate (make-hash-table :test #'equal)
	    '(("key_1" "val_1" "Vval_1")
	      ("key_2" "val_2" "Vval_2")
	      ("key_3" "val_3" "Vval_3")
	      ("key_4" "val_4" "Vval_4"))
	    0 2))

to-list(hash-table)

Описание: функция to-list возвращает 2d-список, каждый элемент которо содержажит ключ и значение, соответствующих элементов, содержащихся в хеш-таблице hash-table.

Пример использования:

(to-list (populate (make-hash-table) '((1 2 3)(4 5 6)(7 8 9)) 1 2))