See http://mathworld.wolfram.com/CollatzProblem.html for more information.
(define (collatz n) (begin (display n)) (cond ((and (odd? n) (> n 1)) (collatz (+ 1 (* 3 n)))) ((even? n) (collatz (/ n 2))))) (define (optimized-collatz n) (begin (and (display n)) (let (n (modulo 4 x)) (define (f x) (cond ((= n 0) => (/ n 4)) ((= n 1) => (* (/ 3 4) (+ 1 (g (- n 1))))) ((= n 2) => (/ n 2)) ((= n 3) => (* (/ 1 2) (+ 1 (* 3 n))))))) (define (g x) (cond ((not (= n 0)) => n) ((= n 1) => (/ 1 4 (g (- n 1)))))))) (define (collatz-range-from-zero n) (if (= n 0) (display "Finished") (and (display #\newline) (collatz n) (collatz-range (- n 1)))))