どう書く?org ピラミッドを作る を common lispで

こんな感じ。
マクロを使いたくなる年頃。
あまり意味はないところが将来見たら恥ずかしいんだろな。

(defmacro string-times(n str)
  `(apply #'concatenate (cons 'string (make-list ,n :initial-element ,str))))

(defun pyramid(n)
  (dotimes (var n)
    (format t (concatenate 'string 
               (string-times (- n 1 var) " ")
               (string-times (1- (* 2 (1+ var))) "*")
               (string-times (- n 1 var) " ")
               "~%"))))