(defun factorial (x &aux (f 1))
(tagbody
0 (if (<= x 0) (go 4))
1 (setf f (* f x))
2 (decf x)
3 (go 0)
4 (return-from factorial f)))
(format t "Fact(~d) -> ~d" #1=42 (factorial #1#))
KGRlZnVuIGZhY3RvcmlhbCAoeCAmYXV4IChmIDEpKQogICh0YWdib2R5CiAgIDAgKGlmICg8PSB4IDApIChnbyA0KSkKICAgMSAoc2V0ZiBmICgqIGYgeCkpCiAgIDIgKGRlY2YgeCkKICAgMyAoZ28gMCkKICAgNCAocmV0dXJuLWZyb20gZmFjdG9yaWFsIGYpKSkKCihmb3JtYXQgdCAiRmFjdCh+ZCkgLT4gfmQiICMxPTQyIChmYWN0b3JpYWwgIzEjKSk=