在常见的lisp中,我将变量'name'定义为:
(setq name ':length-1)
>> :length-1
现在我想使用这个变量制作一个plist,我希望它看起来像:
(:length-1 10)
有没有办法使用另一个定义的变量来定义plist的键?
我试过'格式',但这给了我一个字符串而不是符号:
(list (format nil ":~a" name) 10)
但是这给了我:
(":lifting-surface" 10)
答案 0 :(得分:3)
这应该这样做:
(list name 10)
但是,如果您在使用":lifting-surface"
时获得":length-1"
而不是format
,则必须更改name
的值。
答案 1 :(得分:1)
看起来您正在尝试从字符串中创建关键字符号,我建议使用alexandria库中的make-keyword函数,如下所示:
(defun make-keyword (name)
"Interns the string designated by NAME in the KEYWORD package."
(intern (string name) :keyword))
编辑:哦,我知道你不是,但无论如何这可能是有用的。