(defun man-or-boy (x) (a x (lambda () 1) (lambda () -1) (lambda () -1) (lambda () 1) (lambda () 0))) (defun a (k x1 x2 x3 x4 x5) (labels ((b () (decf k) (a k #'b x1 x2 x3 x4))) (if (<= k 0) (+ (funcall x4) (funcall x5)) (b)))) (man-or-boy 10)