define-syntax-rule (for init condition post body) { expand init do () ((not (expand condition))) { expand body expand post } } define (sum n) { define s 0 for (define i 0) (< i n) (set! i (1+ i)) { set! s (+ s i) } get s } display (sum 1000000) newline