DEFINE(( (EVENP (LAMBDA (N) (ZEROP (REMAINDER N 2)))) (COLLATZ (LAMBDA (X Y)(PROG (N CNT) (SETQ N X) (SETQ CNT Y) L (COND ((EQUAL 1 N) (RETURN CNT)) ((EVENP N) (SETQ N (QUOTIENT N 2))) (T (SETQ N (ADD1 (TIMES 3 N))))) (SETQ CNT (ADD1 CNT)) (GO L)))) (COLLTAZ-MAX (LAMBDA (X) (PROG (N RES HN HS) (SETQ N 1) (SETQ HS 0) L (COND ((GREATERP N X) (RETURN (LIST HN HS)))) (SETQ RES (COLLATZ N 0)) (COND ((GREATERP RES HS) (PROG () (SETQ HS RES) (SETQ HN N)))) (SETQ N (ADD1 N)) (GO L)))) )) PROG(() (RETURN (COLLTAZ-MAX (EXPT 2 20))))