diff --git a/binding.lisp b/binding.lisp index 681623c7c237ef02747ab3830c0be52f3c66a556..0217db54d0cd9c66b1cdfbb115d23f4218e8cefc 100644 --- a/binding.lisp +++ b/binding.lisp @@ -79,15 +79,13 @@ Execution of WHEN-LET* stops immediately if any INITIAL-FORM evaluates to NIL. If all INITIAL-FORMs evaluate to true, then BODY is executed as an implicit PROGN." (let ((binding-list (if (and (consp bindings) (symbolp (car bindings))) - (list bindings) - bindings))) + (list bindings) + bindings))) (labels ((bind (bindings body) (if bindings - `((let (,(car bindings)) - (when ,(caar bindings) - ,@(bind (cdr bindings) body)))) - body))) - `(let (,(car binding-list)) - (when ,(caar binding-list) - ,@(bind (cdr binding-list) body)))))) + `(let (,(car bindings)) + (when ,(caar bindings) + (bind (cdr bindings) body))) + `(progn ,@body)))) + (bind (cdr binding-list) body))))