2010-02-27 19 views
10

dire che ho un elenco di argomenti:srotolare/argomenti splat in Common Lisp

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

Come posso poi "splat" o "srotolare" questo in una serie di argomenti, piuttosto che un singolo argomento lista, per fornire la funzione di formattazione? cioè Vorrei la seguente chiamata di funzione che si terrà:

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

Per riferimento, avrei scritto quanto segue in pitone o ruby:

format(*format-args) 

Sono sicuro che si può fare, ma forse ci sto pensando male. Inoltre, non aiuta il nome di questa operazione non sembra essere molto ben concordato ...

risposta

10

Oops! Avrei dovuto ricordare come javascript lo fa.

scopre che utilizza la funzione si applicano, come in:

(apply #'format format-args)