(define (range start limit step)
;;
;; Generate a list from a given value, to a given value
;; e.g. '(start (+ start step) ... end )
;; Author: Daniel Turner
;;
(define (iter start limit step out_list)
(if (> (car out_list) limit)
(reverse (cdr out_list))
(iter start limit step (cons (+ (car out_list) step) out_list))
)
)
(iter start limit step (list start))
)
(define (fizz-buzz n)
;;
;; Determine whether to fizz, buzz or fizz buzz for a given n.
;; Author: Daniel Turner
;;
(cond ((= 0 (remainder n 15)) 'FizzBuzz)
((= 0 (remainder n 5)) 'Buzz)
((= 0 (remainder n 3)) 'Fizz)
(else n)
)
)
(map (lambda (n) (display n) (display "\n")) (map fizz-buzz (range 1 100 1)))