RosettaCodeData/Task/Man-or-boy-test/Common-Lisp/man-or-boy-test.lisp
2023-07-01 13:44:08 -04:00

16 lines
318 B
Common Lisp

(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)