Описание: пакет mnas-hash-table определяет некоторые функции для работы с хеш-таблицами.
Пакет содержит следующие применимые к хеш-таблицам функции:
- populate - наполнения элементами;
- to-list - преобразования в список;
- print-items - вывода элементов в поток;
- hash-table-copy - копирования.
Функции
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))