Guile Reference Manual
24.4 Copying Deep Structures
The procedures for copying lists (see section 22.2 Lists) only produce a flat
copy of the input list, and currently Guile does not even contain
procedures for copying vectors.
copy-tree can be used for these
application, as it does not only copy the spine of a list, but also
copies any pairs in the cars of the input lists.
- Scheme Procedure: copy-tree obj
- C Function: scm_copy_tree (obj)
- Recursively copy the data tree that is bound to obj, and return a
pointer to the new data structure.
copy-tree recurses down the
contents of both pairs and vectors (since both cons cells and vector
cells may point to arbitrary objects), and stops recursing when it hits
any other object.