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
),我没有任何问题。任何想法为什么它不喜欢字符串作为键?