~V

V。フォーマット指示子に与えることのできるパラメータ。
対応する位置の引数(数値)に置換される。
再帰・繰返し的な出力処理を行いたい場合に便利(だけどよく忘れるし、ドキュメントからも探しにくい)


サンプルコード

> (format t "~V%###" 3) ; = (format t "~3%###")


###
--> NIL 

;;;;;;;;;;;;;;;;;
(defun ppp(stream ch colon? atsign? n)
  (declare (ignore colon? atsign?))
  (dotimes (i n)
    (princ (if (evenp i) ch " ") stream)))

;; ~T:          タブ
;; ~/function/: 関数呼び出し
(defun print-triangle (n)
  (loop for i from 1 to n do
    (format t "~V@T~V/ppp/~%" (- n i) (* i 2) #\A)))

> (print-triangle 5)
    A 
   A A 
  A A A 
 A A A A 
A A A A A 
--> NIL