[LISPWORKS][Common Lisp HyperSpec (TM)] [Previous][Up][Next]

Function COPY-LIST


copy-list list => copy

Arguments and Values:

list---a proper list or a dotted list.

copy---a list.


Returns a copy of list. If list is a dotted list, the resulting list will also be a dotted list.

Only the list structure of list is copied; the elements of the resulting list are the same as the corresponding elements of the given list.


 (setq lst (list 1 (list 2 3))) =>  (1 (2 3))
 (setq slst lst) =>  (1 (2 3))
 (setq clst (copy-list lst)) =>  (1 (2 3))
 (eq slst lst) =>  true
 (eq clst lst) =>  false
 (equal clst lst) =>  true
 (rplaca lst "one") =>  ("one" (2 3))
 slst =>  ("one" (2 3))
 clst =>  (1 (2 3))
 (setf (caadr lst) "two") =>  "two"
 lst =>  ("one" ("two" 3))
 slst =>  ("one" ("two" 3))
 clst =>  (1 ("two" 3))

Side Effects: None.

Affected By: None.

Exceptional Situations:

The consequences are undefined if list is a circular list.

See Also:

copy-alist, copy-seq, copy-tree


The copy created is equal to list, but not eq.

[Starting Points][Contents][Index][Symbols][Glossary][Issues]
Copyright 1996-2005, LispWorks Ltd. All rights reserved.