flatten の改善
昨日の関数 flatten を改良してみました。
concat を呼ぶごとに cons セルが生成されていたところが省けて、少し軽くなった筈です。
(defun flatten2 (tree) (reverse (flatten-rec tree nil))) (defun flatten-rec (tree stack) (if tree (if (atom tree) (cons tree stack) (flatten-rec (cdr tree) (flatten-rec (car tree) stack))) stack))