バブルソート習作
(defun do-bubble (list) (if (cdr list) (let ((t1 (car list)) (t2 (car (cdr list)))) (if (> t1 t2) (setf (car list) t2 (car (cdr list)) t1)) (setf (cdr list) (do-bubble (cdr list))))) list) (defun bubble-sort (list) (let ((ret-list)) (dotimes (x (length list) ret-list) (setf list (do-bubble list) ret-list (append (list (car (reverse list))) ret-list) list (reverse (cdr (reverse list))))))) ; 結果 ; * (bubble-sort '(3 1 4 6 2 5)) ; ;(1 2 3 4 5 6) ; *