(define-syntax for
  (syntax-rules ()
    ((_ (var from to step) body ...)
     (let loop ((var from))
       (when (< var to)
         body ...
         (loop (+ var step)))))
    ((_ (var from to) body ...)
     (for (var from to 1) body ...))))