0

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

(setq name ':length-1)
 >> :length-1

现在我想使用这个变量创建一个 plist,我希望它看起来像:

(:length-1 10)

有没有办法使用另一个定义的变量来定义 plist 的键?

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

(list (format nil ":~a" name) 10)

但这给了我:

(":lifting-surface" 10)
4

2 回答 2

3

这应该这样做:

(list name 10)

但是如果你得到":lifting-surface"而不是":length-1"当你使用时format,你一定改变了name.

于 2013-06-03T17:12:48.857 回答
1

看起来您正在尝试从字符串中创建关键字符号,我建议使用 alexandria 库中的 make-keyword 函数,如下所示:

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

编辑:哦,我看到你不是,但这可能还是有用的。

于 2013-06-03T21:17:00.590 回答