(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 ...))))