|   | 
 ANSI Common Lisp    14 Conses    14.2 Dictionary of Conses
 
 - Syntax:
 - 
nconc
&rest lists
  
  concatenated-list
  - Arguments and Values:
 - 
list - each but the last must be a list 
	(which might be a dotted list but must not be a circular list);
        the last list may be any object.
concatenated-list - a list.
 
  - Description:
 - 
Returns a list that is the concatenation of lists.
If no lists are supplied, (nconc) returns nil.
nconc is defined using the following recursive relationship:
 
 (nconc)   ()
 (nconc nil . lists) ==(nconc . lists)
 (nconc list)   list
 (nconc list-1 list-2) ==(progn (rplacd (last list-1) list-2) list-1)
 (nconc list-1 list-2 . lists) ==(nconc (nconc list-1 list-2) . lists)
 
  - Examples:
 - 
 (nconc)    NIL
 (setq x '(a b c))   (A B C)
 (setq y '(d e f))   (D E F)
 (nconc x y)   (A B C D E F)
 x   (A B C D E F)
 
Note, in the example, that the value of x is now different,
since its last cons 
has been rplacd'd to the value of y.
If (nconc x y) were evaluated again,
it would yield a piece of a circular list,
whose printed representation would be
(A B C D E F D E F D E F ...), repeating forever;
if the *print-circle* switch were non-nil,
it would be printed as (A B C . #1=(D E F . #1#)).
 
 (setq foo (list 'a 'b 'c 'd 'e)
       bar (list 'f 'g 'h 'i 'j)
       baz (list 'k 'l 'm))   (K L M)
 (setq foo (nconc foo bar baz))   (A B C D E F G H I J K L M)
 foo   (A B C D E F G H I J K L M)
 bar   (F G H I J K L M)
 baz   (K L M)
 (setq foo (list 'a 'b 'c 'd 'e)
       bar (list 'f 'g 'h 'i 'j)
       baz (list 'k 'l 'm))   (K L M)
 (setq foo (nconc nil foo bar nil baz))   (A B C D E F G H I J K L M) 
 foo   (A B C D E F G H I J K L M)
 bar   (F G H I J K L M)
 baz   (K L M)
 
  - Side Effects:
 - 
The lists are modified rather than copied.
?
 
  - See Also:
 - 
append, concatenate
  - Allegro CL Implementation Details:
 - 
 None.
  
 |