【发布时间】:2019-04-21 03:02:29
【问题描述】:
Common Lisp 似乎允许将可变数据用作哈希表键。
(defparameter *dict* (make-hash-table))
(defparameter *a* (make-hash-table))
(setf (gethash *a* *dict*) 5)
(loop for key being the hash-keys of *dict*
do (progn
(print key)
(print (gethash key *dict*))))
这里将一个哈希表用作另一个哈希表中的键。
我对这种行为有点困惑。我的理解是,如果键对象发生突变,可变键可能会与哈希混淆。
哈希表如何保持其完整性,更重要的是 - 在 CL 中处理可变哈希表键时有什么需要知道的吗?这是要避免的吗?
【问题讨论】:
标签: common-lisp