0.8.0.6:
[sbcl.git] / src / pcl / walk.lisp
index 39beb2e..2dbeb0c 100644 (file)
 
 ;;; SBCL-only special forms
 (define-walker-template sb!ext:truly-the     (nil quote eval))
+(define-walker-template named-lambda         walk-named-lambda)
 \f
 (defvar *walk-form-expand-macros-p* nil)
 
               walked-arglist
               walked-body))))
 
+(defun walk-named-lambda (form context old-env)
+  (walker-environment-bind (new-env old-env)
+    (let* ((name (second form))
+           (arglist (third form))
+          (body (cdddr form))
+          (walked-arglist (walk-arglist arglist context new-env))
+          (walked-body
+            (walk-declarations body #'walk-repeat-eval new-env)))
+      (relist* form
+              (car form)
+               name
+              walked-arglist
+              walked-body))))
+
 (defun walk-setq (form context env)
   (if (cdddr form)
       (let* ((expanded (let ((rforms nil)