(define (>= a b)
(%%cexp (int int -> bool) "%0>=%1" a b))
(define (- a b)
(%%cexp (int int -> int) "%0-%1" a b))
(define (zero? a)
(%%cexp (int -> bool) "%0==0" a))
(define (tak x y z)
(if (>= y x)
z
(tak (tak (- x 1) y z)
(tak (- y 1) z x)
(tak (- z 1) x y))))
(let loop ((n 20))
(let ((r (tak 18 12 6)))
(if (zero? n)
r
(loop (- n 1)))))