строка формата lisp, которая использует один аргумент и печатает в нескольких местах директив - PullRequest
4 голосов
/ 01 марта 2011

Я хочу сделать это

(format nil "One occurence of ~X , another one: ~X , and yet another one: ~X" #\some-char)

Есть ли какая-либо директива формата X, которая может это сделать?

1 Ответ

5 голосов
/ 01 марта 2011

Нашел его: ~:* Он говорит lisp повторно использовать последний аргумент.Подобно перемотке аргументов на одну позицию назад.

Полный текст объяснения см. В http://www.gigamonkeys.com/book/a-few-format-recipes.html (это в нижней части страницы)

Так что становится

(format nil "One occurence of ~C , another one: ~:*~C , and yet another one: ~:*~C" #\a)
=> "One occurence of a , another one: a , and yet another one: a"
...