From: Ken Tilton
Subject: Any other good uses for ADJOIN?
Date: 
Message-ID: <dUnOi.3$S67.2@newsfe12.lga>
I am pretty excited, I finally came up with a reason to use adjoin:

(eval-when (:compile-toplevel :load-toplevel :execute)
   (setf *features* (adjoin :its-alive! *features*)))


CONS is no good because every time I change this file it would get 
consed onto features. pushnew without the setf is no good because I want 
to toggle easily by changing to delete, and there is no macro to operate 
on a place. I could use setf with pushnew, but...ewwwww!

This is like birding. I am trying to sensibly use every construct in CL 
before I die, adjoin was one of the last. Champagne later, I think.

Anyone have any other valid adjoin uses they can share?

kenny

-- 
http://www.theoryyalgebra.com/

"We are what we pretend to be." -Kurt Vonnegut
From: Madhu
Subject: Re: Any other good uses for ADJOIN?
Date: 
Message-ID: <m3d4vppzge.fsf@robolove.meer.net>
* Ken Tilton <·············@newsfe12.lga> :
| I am pretty excited, I finally came up with a reason to use adjoin:
[...]
| This is like birding. I am trying to sensibly use every construct in
| CL before I die, adjoin was one of the last. Champagne later, I think.
|
| Anyone have any other valid adjoin uses they can share?

REPL ONLY:

(labels((f(k h)(cond((null k)h)((listp k)(f(car k)(f(cdr k)h)))((adjoin
k h))))(g(x)(subseq(string(elt(f - nil)(car x)))(cadr x)(or(caddr
x)(1+(cadr x))))))(format nil"~{~A~}"(mapcar #'g'((5 2)(2 1)(3 2 4)(0
1)(3 0 3)(3 4)(7 0)(5 0)(13 0 3)))))

--
Madhu