Name: Anonymous 2007-09-29 3:42 ID:nQXSHaSg
(defun tak (x y z)
(if (>= y x)
z
(tak (tak (- x 1) y z)
(tak (- y 1) z x)
(tak (- z 1) x y))))
(defun tak (x y z)
(if (>= y x)
z
(tak (tak (- x 1) y z)
(tak (- y 1) z x)
(tak (- z 1) x y))))
tak = fix (ap (ap . ((ap . if') .) . flip (>=)) . ap (ap . (liftM2 ap .) . ap (ap . (liftM2 ap .) . ap ((.) . (.) . (.)) (. subtract 1)) (flip . (flip .) . (. subtract 1))) ((flip .) . flip . (. subtract 1)))