lisp - 写入/读取 Common Lisp (SBCL) 哈希表,或替代方案

标签 lisp hashtable common-lisp sbcl read-write

我想向磁盘写入/从磁盘读取哈希表,但它不是(print)able 对象。我不知道键名,所以我想不出一种方法来手动完成。我读到可能有特定于发行版的方法可以做到这一点; SBCL 中有这方面的内容吗?
我没有在 SBCL 手册或 Google 上找到任何内容。

如果没有,是否有另一种可存储的方式来保持整数列表绑定(bind)到字符串,能够有效地修改这些列表,并具有恒定或至少比列表更快的访问时间?
使用列表来实现二叉搜索树是否足够容易?这对于制作基本数据库来说是个好主意吗?

最佳答案

MAPHASH 将带有两个参数的函数映射到哈希表上以产生副作用。这两个参数是哈希表中每一项的键和值。例如,您可以使用它来将哈希表中的每个项目写为键和值的列表:

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

关于lisp - 写入/读取 Common Lisp (SBCL) 哈希表,或替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5892001/

相关文章:

c# - 在循环中从哈希表中删除项目

c - 使用 For 创建结构体进行初始化

c++ - 像 C# HashSet<T> 和 Dictionary<K,V> 这样的快速 C++ 容器?

python - 有没有一种简单的方法可以使用 Common Lisp 中的 Python 库?

return - 如何跳出 Lisp 中的函数?

function - 在加载时运行 Lisp 函数

scheme - Memoization performance - SICP exercise 3.27 似乎是错误的

emacs - 使用 swank/slime 在远程 Lisp 中加载本地文件

java - 如何获取 Lisp 脚本中定义的函数名称?

lisp - 自托管的概念