Advertisement
Guest User

Untitled

a guest
Jun 25th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. (defmacro exec-reset-vars-1 (vars body)
  2. (let ((lst (gensym)))
  3. `(let ((,lst ,(reduce #'(lambda (acc var) `(cons ,(symbol-value var) ,acc))
  4. vars
  5. :initial-value nil)))
  6. ,@body
  7. ,@(mapcar #'(lambda (var) `(setf ,var (car ,lst)))
  8. vars))))
  9.  
  10. (defmacro exec-reset-vars-2 (vars body)
  11. (let ((lst (gensym)))
  12. `(let ((,lst ,(reduce #'(lambda (acc var) `(cons ,(symbol-value var) ,acc))
  13. vars
  14. :initial-value nil)))
  15. ,@body
  16. ,@(mapcar #'(lambda (var val) `(setf ,var ,val))
  17. vars
  18. lst))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement