使用common lisp中定义的另一个变量定义plist的键

使用common lisp中定义的另一个变量定义plist的键,lisp,key,plist,common-lisp,Lisp,Key,Plist,Common Lisp,在common lisp中,我有一个变量“name”,定义为: (setq name ':length-1) >> :length-1 现在我想用这个变量创建一个plist,我想让它看起来像: (:length-1 10) 是否有方法使用另一个定义的变量定义plist的键 我尝试了“格式”,但这给了我一个字符串,而不是符号: (list (format nil ":~a" name) 10) 但这给了我: (":lifting-surface" 10) 这应该做到: (li

在common lisp中,我有一个变量“name”,定义为:

(setq name ':length-1)
 >> :length-1
现在我想用这个变量创建一个plist,我想让它看起来像:

(:length-1 10)
是否有方法使用另一个定义的变量定义plist的键

我尝试了“格式”,但这给了我一个字符串,而不是符号:

(list (format nil ":~a" name) 10)
但这给了我:

(":lifting-surface" 10)
这应该做到:

(list name 10)
但是,如果在使用
格式时得到的是
“:lifting surface”
而不是
“:length-1”
,则必须更改
name

的值,这应该可以做到:

(list name 10)

但是,如果使用
格式时得到的是
“:lifting surface”
,而不是
“:length-1”
,则必须更改
name

的值,看起来您正试图从字符串中生成关键字符号,我建议使用alexandria库中的make关键字函数,如下所示:

(defun make-keyword (name)
  "Interns the string designated by NAME in the KEYWORD package."
  (intern (string name) :keyword))

编辑:哦,我知道你不是,但这可能很有用。

如果你试图从字符串中生成关键字符号,我建议使用alexandria库中的make keyword函数,如下所示:

(defun make-keyword (name)
  "Interns the string designated by NAME in the KEYWORD package."
  (intern (string name) :keyword))
编辑:哦,我知道你不是,但无论如何这可能是有用的