Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defmacro exec-reset-vars-1 (vars body)
- (let ((lst (gensym)))
- `(let ((,lst ,(reduce #'(lambda (acc var) `(cons ,(symbol-value var) ,acc))
- vars
- :initial-value nil)))
- ,@body
- ,@(mapcar #'(lambda (var) `(setf ,var (car ,lst)))
- vars))))
- (defmacro exec-reset-vars-2 (vars body)
- (let ((lst (gensym)))
- `(let ((,lst ,(reduce #'(lambda (acc var) `(cons ,(symbol-value var) ,acc))
- vars
- :initial-value nil)))
- ,@body
- ,@(mapcar #'(lambda (var val) `(setf ,var ,val))
- vars
- lst))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement