2010-02-27 17 views
10

sagen, dass ich eine Liste von Argumenten haben:abrollen/Splat Argumente in Common Lisp

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

Wie kann ich „Klecks“ oder „abrollen“ diese dann in eine Reihe von Argumenten, statt einer einzigen Liste Argument für Versorgung der Formatfunktion? dh ich die folgende Funktion aufrufen möchte stattzufinden:

format(*format-args) 

Ich bin sicher, dass es getan werden kann, aber:

> (format t "it's ~a" 1) 

Zum Vergleich würde ich folgendes in Python oder Ruby schreiben Vielleicht denke ich darüber falsch. Es hilft auch nicht, dass der Name für diese Operation nicht sehr gut vereinbart zu sein scheint ...

Antwort

10

Hoppla! Ich hätte daran denken sollen, wie Javascript das macht.

Es stellte sich heraus Sie die Funktion anwenden zu verwenden, wie in:

(apply #'format format-args)