diff --git a/base/macros.lisp b/base/macros.lisp index b95e348b6071bb3ee2de717b17b9e2d2360a3cdc..35ef1c8f9abc11792cd937f0310001212607a8c2 100644 --- a/base/macros.lisp +++ b/base/macros.lisp @@ -536,6 +536,15 @@ shall be declared with a serial dependency in system definitions. (defmacro nest (&rest things) (reduce #'(lambda (outer inner) (append outer (list inner))) things :from-end t)) +#| Note: in Scheme, you could do +(define-syntax nest + (syntax-rules () + ((nest x) x) + ((nest (x ...) y z ...) (x ... (nest y z ...))))) +or in Racket, directly use the related but different form nest from scheme/nest: +http://docs.racket-lang.org/scheme/nest.html?q=nest#(form._((lib._scheme/nest..rkt)._nest)) +(racket:nest (x ...) . body) ==> (my:nest x ... body) +|# (defmacro tsen (&rest things) (reduce #'(lambda (inner outer) (append outer (list inner)))