format:繰り返し - lisp-cookbook-ja/common-lisp GitHub Wiki
~~{ ~}を使うことにより繰り返して出力することが可能です
50回繰り返す
(format t "~50@{=~}" :dummy)
;-> ==================================================
;=> NIL
(format t "~V@{=~}" 50 :dummy)
;-> ==================================================
;=> NIL
(format t "~V@{~A~:*~}" 50 "=")
;-> ==================================================
;=> NIL
3回、4回、5回 と繰り返す(:*は引数の消費を一つ戻す。*は引数を消費する)
(format t "~3@{~A~:*~}~* ~4@{~A~:*~}~* ~5@{~A~:*~}~%" 'a 'b 'c)
;-> AAA BBBB CCCCC
;
;=> NIL
(format t "~V@{~A~:*~}~* ~V@{~A~:*~}~* ~V@{~A~:*~}~%" 3 'a 4 'b 5 'c)
;-> AAA BBBB CCCCC
;
;=> NIL
(format t "~@{~V@{~A~:*~}~*~^ ~}~%" 3 'a 4 'b 5 'c)
;-> AAA BBBB CCCCC
;
;=> NIL
繰り返しの回数と文字をリストで与える
(format t "~{~V@{~A~:*~}:~:*~A~*~%~}" '(13 = 5 \# 22 % 18 + 40 % 2 *))
;-> =============:13
; #####:5
; %%%%%%%%%%%%%%%%%%%%%%:22
; ++++++++++++++++++:18
; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:40
; **:2
;
;=> NIL