【发布时间】:2013-02-22 21:41:43
【问题描述】:
Scheme 的 eqv-hashtable 数据结构似乎无法识别字符串键。在以下代码中,我创建了一个 eqv-hashtable 并创建了一个新数据:
(define state-hash (make-eqv-hashtable))
(hashtable-set! state-hash "S" (State "S" #f '() '()))
但是,当我尝试检查我的数据是否存储在哈希表中时,我遇到了以下情况:
(hashtable-contains? state-hash "S") ; --> #f
虽然hashtable-contains? 过程显示密钥"S" 当前不在哈希表中,但以下建议并非如此:
(hashtable-keys state-hash) ; --> #("S")
如果我使用非字符串作为键,例如符号(例如'S),我没有任何问题。任何想法为什么它不喜欢字符串作为键?
【问题讨论】: