我想生成可以在多个哈希表中使用的顺序键。我将它们称为'id1','id2'等。如果ht是我的哈希表,那么我想将字符串中的符号作为键。要在哈希表中添加一个条目,我希望如此:
(setf (gethash (make-symbol "id1") ht) 1)
然后使用
再次访问它(gethash 'id1 ht)
我不认为 make-symbol 正在给我我想要的东西,并且密钥'id1'不被识别。
制作此密钥的最佳方法是什么?
答案 0 :(得分:4)
错误:符号应位于包中并需要正确的大小写
在你的情况下,我们有:
CL-USER 24 > (symbol-name (make-symbol "id0"))
"id0"
CL-USER 25 > (symbol-package (make-symbol "id0"))
NIL
请务必考虑以下事项:
<强>示例:强>
大写符号和小写符号名称 - &gt;不是eq
CL-USER 26 > (eq 'id0 (intern "id0" "CL-USER"))
NIL
大写符号和大写符号名称 - &gt;是eq
CL-USER 27 > (eq 'id0 (intern "ID0" "CL-USER"))
T
转义&amp;小写符号和小写符号名称 - &gt;是eq
CL-USER 28 > (eq '|id0| (intern "id0" "CL-USER"))
T
答案 1 :(得分:2)
make-symbol
创建未加密的符号。这意味着每次都会有一个独特的符号。要获得实习符号,请改用intern
。