Remove `labels' in favor of `letrec'
[clinton/parenscript.git] / src / special-forms.lisp
index 7109cf5..25dc963 100644 (file)
@@ -595,6 +595,14 @@ lambda-list::=
            ,@body))
       `(progn ,@body)))
 
+(defpsmacro letrec (bindings &body body)
+  `(let ,(mapcar (lambda (bind)
+                  (list (car bind) 'null))
+                bindings)
+     ,@(mapcar (lambda (bind) `(var ,(car bind) ,(cadr bind)))
+              bindings)
+     ,@body))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; iteration
 (defun make-for-vars/inits (init-forms)