我想在普通的lisp中使用这样的东西。
(format t "~{-~}" repeat-times)
如果重复次数为5将打印-----
如果重复次数为10将打印----------
格式是否存在这样做?
答案 0 :(得分:4)
是。只要有待处理的参数,~{
通常会重复,但添加前缀参数将限制迭代次数。使前缀参数v
将从参数列表中获取它。添加@
将使迭代使用其余参数作为输入。
由于大括号之间的部分从不使用任何参数,因此前缀将决定迭代次数。但是,必须至少有一个参数(我随意选择nil
),否则迭代将立即终止。
(format t "~v@{-~}" repeat-times nil)