Запись / чтение хеш-таблицы Common Lisp (SBCL) или альтернатива - PullRequest
6 голосов
/ 05 мая 2011

Я хотел бы записать / прочитать хэш-таблицу на / с диска, но это не (print) способный объект.Я не буду знать названия клавиш, поэтому не могу придумать, как это сделать вручную.Я читал, что для этого могут быть специфические способы распространения;Есть ли что-нибудь для этого в SBCL?
Я не нашел ничего в руководстве SBCL или в Google.

Если нет, есть ли другой способ хранения списков целых чисел, привязанных к строкам,способен эффективно изменять эти списки и иметь постоянное или, по крайней мере, более быстрое время доступа, чем у списка?
Достаточно ли просто реализовать бинарные деревья поиска с помощью списков и это хорошая идея для создания базовой базы данных?

1 Ответ

11 голосов
/ 05 мая 2011

MAPHASH отображает функцию с двумя аргументами в хеш-таблицу для побочных эффектов.Два аргумента являются ключом и значением каждого элемента в хэш-таблице.Вы можете использовать это, например, чтобы записать каждый элемент в хеш-таблицу в виде списка ключа и значения:

(maphash (lambda (key value)(write (list key value))) *hash-table*)
...