使用common lisp中定义的另一个变量定义plist的键
在common lisp中,我有一个变量“name”,定义为:使用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
(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))
编辑:哦,我知道你不是,但无论如何这可能是有用的