(use srfi-1) (define (collatz n) (unfold (lambda (s) (= s 1)) (lambda (s) s) (lambda (s) (cond ((even? s)(/ s 2)) ((odd? s)(+ (* s 3) 1)) (else s))) n (lambda (s) (cons s '())))) (collatz 10) ; -> (10 5 16 8 4 2 1)