gpt4 book ai didi

common-lisp - 如何创建由 `make-symbol` 创建的符号

转载 作者:行者123 更新时间:2023-12-03 04:51:22 25 4
gpt4 key购买 nike

我的程序创建虚拟数据。这些虚拟数据的一部分是符号形式的键:(lambda (i) ( make-symbol (format nil "~@r" i))) (fixnum 值及其罗马数字作为符号作为键)。该程序将这些虚拟键值对存储在我正在开发的数据结构中。

我尝试使用 REPL 中的这些符号来测试通过它们的键检索值。但是:

(equal (make-symbol "IX") (make-symbol "IX"))

NIL

(equal (make-symbol "IX") 'IX))

NIL

有没有办法输入之前使用 make-symbol 创建的符号在 REPL 中,以便两者相等

最佳答案

正如 @coredump 所建议的,使用 intern 将这些符号添加到某个包中,如下所示:

CL-USER> (defpackage :my-symbols)
#<Package "MY-SYMBOLS">
CL-USER> (intern "IX" :my-symbols)
MY-SYMBOLS::IX
NIL
CL-USER> (intern "IX" :my-symbols)
MY-SYMBOLS::IX
:INTERNAL
CL-USER> (eql (intern "IX" :my-symbols)
(intern "IX" :my-symbols))
T
CL-USER>

关于common-lisp - 如何创建由 `make-symbol` 创建的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52409445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com