Next: 3.4 delete
Up: 3 リスト構造の変更
Previous: 3.2 rplacd
appendと同じような形でリスト構造を変える手続きとして
nconcというものがある.
(setq x '(1 2 3))
(1 2 3)
(setq y '(4 5 6))
(4 5 6)
x
(1 2 3)
y
(4 5 6)
(append x y)
(1 2 3 4 5 6)
x
(1 2 3)
y
(4 5 6)
(nconc x y)
(1 2 3 4 5 6)
x
(1 2 3 4 5 6)
y
(4 5 6)
という具合に,(nconc x y)によって,
リストxの最後にリストyを繋げてゆく.
nconcを自分で定義すると,
(defun my-nconc (x y)
(rplacd (last x) y)
x)
とすればよい.
lastは,リストの最後のコンスを返す関数で,
(defun my-last (x)
(if (null (cdr x)) x
(my-last (cdr x))))
のように定義できるものである.
(my-last x)
(3)
(my-last y)
(6)
(my-nconc x y)
(1 2 3 4 5 6)
x
(1 2 3 4 5 6)
y
(4 5 6)
generated through LaTeX2HTML. M.Inaba 平成18年5月7日