This is so yummy, I thought I would share it; I just love the way this works:
; tests for define-syntax
(define-syntax begin
(syntax-rules ()
((_ exp ...)
((lambda () exp ...)))))
(define-syntax for
(syntax-rules (in into)
((_ a in b f ...)
(for-each (lambda (a) (begin f ...)) b)) ;nested begin
((_ a b f)
(for-each (lambda (a) f) b))
((_ a into b f ...)
(for-each (lambda (a) f ...) b))))
(for c in "hello"
(begin
(display (char-upcase c))))
(newline)
(for c into "hello"
(display (char-upcase c)))
(newline)
(for c "hello"
(display (char-upcase c)))
(newline)
; error check
(for c out-of "hello"
(display (char-upcase c)))
(for c "hello"
(display (char-upcase c))
(display (char-downcase c)))