with-unique-names
Summary
Returns a body of code with each specified name bound to a similar name.
Signature
with-unique-names (&rest
names
) &body
body
=>
result
Arguments
names
The names to be rebound in
body
.
body
The body of code within which
names
are rebound.
Values
result
The result of evaluating
body
.
Description
Returns the body with each
name
bound to a symbol of a similar name (compare
gensym
).
Example
After defining
(defmacro lister (p q)
(with-unique-names (x y)
`(let ((,x (x-function))
(,y (y-function)))
(list ,p ,q ,x ,y))))
the form
(lister i j)
macroexpands to
(LET* ((#:X-88 (X-FUNCTION))
(#:Y-89 (Y-FUNCTION)))
(LIST i j #:X-88 #:Y-89))
LispWorks User Guide and Reference Manual - 21 Dec 2011