summaryrefslogtreecommitdiffstats
path: root/tail-recursion.lisp
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2013-11-14 14:34:17 -0800
committerKaz Kylheku <kaz@kylheku.com>2013-11-14 14:34:17 -0800
commita4d671b27b30352476e81efacd8c15de349382c1 (patch)
treefce303b047d6db802e7a6d186da1cc9145bc1726 /tail-recursion.lisp
parent8d0fd244e013683b049d86b6599de369bbad592f (diff)
downloadlisp-snippets-a4d671b27b30352476e81efacd8c15de349382c1.tar.gz
lisp-snippets-a4d671b27b30352476e81efacd8c15de349382c1.tar.bz2
lisp-snippets-a4d671b27b30352476e81efacd8c15de349382c1.zip
TAILPROG: bugfix in handling code blocks with more than one
expression in the body.
Diffstat (limited to 'tail-recursion.lisp')
-rw-r--r--tail-recursion.lisp2
1 files changed, 1 insertions, 1 deletions
diff --git a/tail-recursion.lisp b/tail-recursion.lisp
index 8381345..9bdf0b3 100644
--- a/tail-recursion.lisp
+++ b/tail-recursion.lisp
@@ -163,7 +163,7 @@
(dolist (pfunc pseudo-funcs)
(destructuring-bind (name vars &rest forms) pfunc
(push `(label ,name ,@vars) argtags-forms)
- (push `(return ,@forms) argtags-forms)
+ (push `(return (progn ,@forms)) argtags-forms)
(push `(,name (&rest args) `(goto ,',name ,@args)) macrolet-elems)))
`(macrolet ,(reverse macrolet-elems)
(let ,let-bindings