Lisp格式化字符串消耗一个参数并在多个指令位置打印。

5

我想要做这件事

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

有没有任何 X 格式指令可以实现这个功能?

顺便问一下,在我发布一个问题后,经过简单的搜索就几乎立即找到了答案的情况下,我应该删除这个问题还是保留它? - Paralife
尽管你的答案确实来自于我搜索的第一个谷歌结果,即“使用Common Lisp格式在多个位置插入字符串”,但我没有点击那个链接,而是最终看到了这个答案。它是第七个结果,但你的问题标题让内容如此清晰,以至于在我看来,这个问题/答案现在是关于这个特定信息最方便的在线参考。(似乎经常是这样,对于人们想要关闭甚至已经关闭的Stackoverflow问题) - Darren Ringer
1个回答

8

找到了:它是~:*,它告诉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"

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