P22: 整数のリストを作成する
endからstartへ寄せることにより、reverseを省略してみた。
;; P22 (defun range (start end) (do ((op (if (> end start) #'1- #'1+)) (i end (funcall op i)) (acc '())) ((= i start) (push i acc)) (push i acc))) (range 1 10) ;; => (1 2 3 4 5 6 7 8 9 10) (range 10 1) ;; => (10 9 8 7 6 5 4 3 2 1)) (range 1 1) ;; => (1)