【发布时间】:2018-09-19 15:31:37
【问题描述】:
我的程序创建了虚拟数据。这些虚拟数据的一部分是符号形式的键:(lambda (i) (make-symbol(format nil"~@r"i)))(以罗马数字作为键的固定数字值)。该程序将这些虚拟键值对存储在我正在开发的数据结构中。
我尝试使用 REPL 中的这些符号来测试通过它们的键检索值。然而:
(equal (make-symbol "IX") (make-symbol "IX"))
无
(equal (make-symbol "IX") 'IX))
无
有没有办法在 REPL 中输入先前使用 make-symbol 创建的符号,以便两者都是 equal?
【问题讨论】:
-
我可以通过使用其他类型(例如字符串)而不是符号作为键来解决测试中的问题。我仍然想知道如何引用
make-symbol和朋友生成的符号。 -
这不是
intern应该做的吗? -
见stackoverflow.com/questions/8359304/…关于uninterned symbol(例如
make-symbol创建的那些)
标签: common-lisp