loop関数のメモ

九九の出力
row: 行(横)
column: 列(縦)
SBCLバージョン?

(defun ku-ku ()
  (format t "   ")
  (loop for i from 1 to 10
    (format t "~3d" i ))
  (loop for row from 1 to 10
    (format t "~3d" column)
    (loop for column from 1 to 10
      (format t "~3d" (* row column)))))


Emacs Lispバージョン

(defun ku-ku ()  
  (insert (format "  "))
  (loop for i from 1 to 9
        do (insert (format "%3d" i ))
        finally (newline))
  (loop for row from 1 to 9
        do 
        (insert (format "%2d" column))
        (loop for column from 1 to 9
              do (insert (format "%3d" (* row column)))
              finally (newline))))

実行結果

(ku-ku)
;=>
;     1  2  3  4  5  6  7  8  9
;  1  1  2  3  4  5  6  7  8  9
;  2  2  4  6  8 10 12 14 16 18
;  3  3  6  9 12 15 18 21 24 27
;  4  4  8 12 16 20 24 28 32 36
;  5  5 10 15 20 25 30 35 40 45
;  6  6 12 18 24 30 36 42 48 54
;  7  7 14 21 28 35 42 49 56 63
;  8  8 16 24 32 40 48 56 64 72
;  9  9 18 27 36 45 54 63 72 81
; nil