![]() | ![]() | ![]() | with-once-only-bindings | ![]() |
| [Macro] |
Purpose
Evaluate, in order, each
Package :gbbopen-tools
Module :gbbopen-tools
Arguments and values
symbols | Zero or more symbols to be evaluated once only | |
declaration | A declare expression (not evaluated) | |
forms | An implicit progn of forms to be evaluated | |
results | The values returned by evaluating the last form |
Returns
The values returned by evaluating the last form.
Description
This is GBBopen's version of the “once-only” macro-writing
macro that ensures that the forms associated with macro arguments are
only evaluated once and in the specified order.
Example
(define-compiler-macro ensure-list (x) (with-once-only-bindings (x) `(if (listp ,x) ,x (list ,x))))
The GBBopen Project
![]() | ![]() | ![]() | with-once-only-bindings | ![]() |