|   | 
 ANSI Common Lisp    14 Conses    14.2 Dictionary of Conses
 
| 14.2.10  copy-tree | 
Function | 
  
 
 - Syntax:
 - 
copy-tree
tree
  
  new-tree
  - Arguments and Values:
 - 
tree - a tree.
new-tree - a tree.
 
  - Description:
 - 
Creates a copy of a tree of conses.
If tree is not a cons, it is returned; 
otherwise, the result is a new cons of the results of calling copy-tree 
on the car and cdr of tree.
In other words, all conses in the tree represented by tree
are copied recursively, stopping only when non-conses are encountered.
 
copy-tree does not preserve circularities and the sharing of substructure.
 
  - Examples:
 - 
 (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)) 
  - See Also:
 - 
tree-equal
 
  - Allegro CL Implementation Details:
 - 
 None.
  
 |