next up previous
Next: 2 例題:行列表現と演算 Up: 1 リスト処理関数の定義 Previous: 1.4 n番目のデータを得る


1.5 reverse

reverseの定義の方法としてさまざまな方法が考えられます.
  1. appendを使うリバース
    > (defun rev (n)
      (cond
       ((null n) nil)
       (t (append (rev (cdr n)) (list (car n))))))
    rev
    > (rev '(1 2 3))
    (3 2 1)
    
  2. let, whileを使うリバース
    > (defun rev2 (n)
      (let (res)
        (while n
          (setq res (cons (car n) res))
          (setq n (cdr n)))
        res))
    rev2
    > (rev2 '(1 2 3))
    (3 2 1)
    
  3. &aux, dolistを使うリバース
  4. doを使うリバース1,2
  5. 補助関数を使うリバース
  6. &optionalを使うリバース
  7. progを使うリバース


generated through LaTeX2HTML. M.Inaba 平成18年5月6日