Paste number 156187: | refactor |
Pasted by: | none |
When: | 9 years, 5 months ago |
Share: | Tweet this! | http://paste.lisp.org/+3CIJ |
Channel: | None |
Paste contents: |
(defun extract-variable (decl var-form var-name)
(let ((*package* (symbol-package (second decl))))
(labels ((walker (form)
(cond ((equal form var-form)
var-name)
((listp form)
(mapcar #'walker form))
(t form))))
(if (eq 'cl:let (car (fourth decl)))
`(defun ,(second decl) ,(third decl)
(let ((,var-name ,var-form)
,@(second (fourth decl)))
,(walker (third (fourth decl)))))
`(defun ,(second decl) ,(third decl)
(let ((,var-name ,var-form))
,@(walker (cdddr decl))))))))
This paste has no annotations.