Lisp 如何将符号作为关键字参数传递?

Lisp 如何将符号作为关键字参数传递?,lisp,common-lisp,Lisp,Common Lisp,我从一个包中导出一些符号,并在case语句中内部使用它们。我希望将其中一个符号(例如中等大小)作为关键字参数传递给通用方法,如下所示: (solve problem :optimize-for :medium-size :another-keyword t) 但这会产生一个“奇数个&KEY参数”错误。我是否误解了符号或关键字参数的一些基本信息?如果solve的定义方式类似于: (defun solve (problem &key optimize-for another-keyword

我从一个包中导出一些符号,并在case语句中内部使用它们。我希望将其中一个符号(例如中等大小)作为关键字参数传递给通用方法,如下所示:

(solve problem :optimize-for :medium-size :another-keyword t)

但这会产生一个“奇数个&KEY参数”错误。我是否误解了符号或关键字参数的一些基本信息?

如果
solve
的定义方式类似于:

(defun solve (problem &key optimize-for another-keyword)
  ...)

但是,如果您已从
您的软件包中导出符号
中型
,则通常将其称为
您的软件包:中型
(或者,如果您已导入
您的软件包
,则仅为
中型
)。

如果
中型
从您的软件包中导出,它应该是
packagename:medium-size
,而不是
:medium-size
。显示泛型函数的参数列表。您可能缺少一个位置参数。关键字参数的值可以是任何值,使用符号没有什么特别之处。谢谢,Barmar,这是位置参数之一。请把这个评论作为一个答案,我会给你评分。如果没有看到函数的参数列表,我就不能提供一个有用的答案。