在Common Lisp中展开/分散参数

10

假设我有一个参数列表:

> (setf format-args `(t "it's ~a" 1))  
(T "it's ~a" 1)

我该如何将这个列表中的内容展开成一系列参数,而不是一个单独的列表参数,然后再传递给format函数呢? 也就是说,我希望发生以下函数调用:
> (format t "it's ~a" 1)

参考代码,我会用Python或Ruby编写:

format(*format-args)

我相信这是可以做到的,但也许我的想法有误。而且,这个操作的名称似乎没有得到很好的共识,这也没有帮助...

1个回答

10

哎呀!我应该记得JavaScript是如何做的。

事实证明,你可以使用apply函数,就像这样:

(apply #'format format-args)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接