FizzBuzz Solution Dumping Ground

Being of an evil mind tonight, I created the following debacle for your… entertainment:

#!r6rs

(import
 (rnrs base (6))
 (rnrs lists (6))
 (rnrs r5rs (6))
 (rnrs io simple (6)))

(define (factor? x y)
  (= 0 (modulo x y)))

(define (series)
  (letrec ((next
            (lambda (n)
              (cons n (delay (next (+ n 1)))))))
    (next 1)))

(define (show x)
  (display x)
  #t)

(define-syntax exclusive-or
  (syntax-rules ()
    ((_ x y)
     (let ((a x)
           (b y))
       (and (or a b) (not (and a b)))))))

(define (fizzbuzz)
  (let I-am-off ((to-infinity-and-beyond (series)))
    (let ((n (car to-infinity-and-beyond)))
      (if (exclusive-or 
           (and (factor? n 3) (show 'fizz))
           (and (factor? n 5) (show 'buzz)))
          '()
          (if (not (factor? n 15)) 
              (display n)))
      (display #\space)
      (I-am-off (force (cdr to-infinity-and-beyond))))))

(fizzbuzz)