Развернуть / Сплат аргументы в общем LISP - PullRequest
10 голосов
/ 27 февраля 2010

Скажем, у меня есть список аргументов:

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

Как я могу затем "разделить" или "развернуть" это в ряд аргументов, а не в один аргумент списка, для предоставления функции форматирования? т.е. я хотел бы, чтобы выполнялся следующий вызов функции:

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

Для справки я написал бы следующее на python или ruby:

format(*format-args)

Я уверен, что это можно сделать, но, возможно, я думаю об этом неправильно. Также не помогает то, что название этой операции, кажется, не очень хорошо согласовано ...

1 Ответ

10 голосов
/ 27 февраля 2010

Oops! Я должен был вспомнить, как это делает javascript.

Оказывается, вы используете функцию применения, как в:

(apply #'format format-args)
...