for
Scheme だとあまり使う場面はないだろうけど、普通の for 文が使いたかったので書いた。一応残しておく。
(define-syntax for (syntax-rules () ((_ (var start end) body ...) (do ((var start (+ 1 var))) ((= var end)) body ...))))
実行例。
gosh> (for (i 0 10) (format #t "~d " i)) 0 1 2 3 4 5 6 7 8 9 10 #t
Emacs できれいにインデントしたい場合は、.eamcs などで
(put 'for 'scheme-indent-function 1)
しておく。