Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2021
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.62 KB | None | 0 0
  1. (defmacro test-gensym-in-macrolet (my-setter &body body)
  2.   (let ((sym (gensym)))
  3.     `(let (,sym)
  4.        (macrolet ((,my-setter (y) `(setf ,,sym ,y)))
  5.      ,@body))))
  6.  
  7. (test-gensym-in-macrolet my-setter
  8.   (my-setter 5))
  9.  
  10. ;; Result
  11. ; in: TEST-GENSYM-IN-MACROLET MYSET
  12. ;     (EULER::MYSET 5)
  13. ;
  14. ; caught ERROR:
  15. ;   during macroexpansion of (MYSET 5). Use *BREAK-ON-SIGNALS* to intercept.
  16. ;  
  17. ;    The variable #:G668 is unbound.
  18. ;    It is a local variable not available at compile-time.
  19.  
  20. ;     (LET (#:G668)
  21. ;       (MACROLET ((EULER::MYSET (EULER::Y)
  22. ;                    `(SETF #)))
  23. ;         (EULER::MYSET 5)))
  24. ;
  25.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement