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
* 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