Function COPY-TREE

UP


Function COPY-TREE

Function COPY-TREE

構文

copy-tree tree => new-tree

引数と戻り値

tree - ツリー
new-tree - ツリー

定義

コンスのツリーのコピーを作成します。

もしtreeがコンスではないときは、それが返却されます。 そうでないときは、 treecarcdrcopy-treeを呼び出し、 その結果の新しいコンスを作り返却します。 つまり、treeであらわされるツリーの全てのコンスを再帰的にコピーし、 コンスではないものに遭遇したときだけ停止します。

copy-treeは、循環している構造や、 部分的に共有している構造を保存できません。

例文

(setq object (list (cons 1 "one")
                   (cons 2 (list 'a 'b 'c))))
=>  ((1 . "one") (2 A B C))
(setq object-too object) =>  ((1 . "one") (2 A B C))
(setq copy-as-list (copy-list object))
(setq copy-as-alist (copy-alist object))
(setq copy-as-tree (copy-tree object))
(eq object object-too) =>  true
(eq copy-as-tree object) =>  false
(eql copy-as-tree object) =>  false
(equal copy-as-tree object) =>  true
(setf (first (cdr (second object))) "a"
      (car (second object)) "two"
      (car object) '(one . 1)) =>  (ONE . 1)
object =>  ((ONE . 1) ("two" "a" B C))
object-too =>  ((ONE . 1) ("two" "a" B C))
copy-as-list =>  ((1 . "one") ("two" "a" B C))
copy-as-alist =>  ((1 . "one") (2 "a" B C))
copy-as-tree =>  ((1 . "one") (2 A B C)) 

副作用

なし。

影響

なし。

例外

なし。

参考

tree-equal

備考

なし。


TOP, Github