34. FORマクロの実装
(define (range from to)
(if (>= from to)
(list from)
(cons from (range (+ 1 from) to))))
;(range 1 5) => (1 2 3 4 5)
35. FORマクロの実装
(define (range from to)
(if (>= from to)
(list from)
(cons from (range (+ 1 from) to))))
(define-syntax for
(syntax-rules ()
((_ (i a b) body ...)
(for-each (lambda (i) body ...)
(range a b)))))