All Manuals > LispWorks® User Guide and Reference Manual > 38 The LISPWORKS Package

with-unique-names Macro

Summary

Returns a body of code with each specified name bound to a similar name.

Package

lispworks

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

The macro with-unique-names returns body with each name in names bound to a symbol of a similar name (compare gensym).

Examples

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))
See also

rebinding


LispWorks® User Guide and Reference Manual - 01 Dec 2021 19:30:41