【发布时间】:2013-12-21 13:22:07
【问题描述】:
我有以下代码:
(setq months '((january 1) (february 2) ...))
我可以使用get 将此列表用作地图(带有键和值)
喜欢:
(get 'months 'january)
并得到结果:1
是否可以在 Lisp 中执行此操作而无需像这样显式设置属性:
(setf (get 'months 'january) 1)
(setf (get 'months 'february) 2)
...
如果这在 Common Lisp 中是不可能的,那么在任何其他 Lisp 方言中是否可能?
【问题讨论】:
-
为什么不使用
ASSOC来访问关联列表中的元素?为什么使用GET?那会有什么好处呢? GET 用于符号属性列表,而不用于关联列表。 -
@RainerJoswig 我是 LISP 的初学者。我不知道ASSOC。这是我一直在寻找的答案。谢谢!如果您将评论作为答案,我会将其标记为已接受的答案。
-
初学者没什么错。首先询问 Emacs 非常有帮助,有两种方式:(1) 快速获得答案,(2) 了解 Emacs。它们是相关的,当 Emacs 回答您时,它会使用自己的术语,帮助您下次更好地询问它(或这里)。向 Emacs 询问有关
assoc的信息:M-x apropos RET assoc RET。或尝试M-x apropos RET association list RET。 (尝试C-h c apropos TAB以查看其他适当命令的列表。)
标签: lisp common-lisp