Paste number 156187: refactor

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:
Raw Source | XML | Display As
(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.

Colorize as:
Show Line Numbers

Lisppaste pastes can be made by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively.