http://www.geocities.co.jp/SiliconValley-PaloAlto/7043/#continuation

(define-syntax while
(syntax-rules ()
((while test break continue body1 body2 ...)
(block break
(let loop ()
(cond (test
(block continue
body1 body2 ...)
(loop))))))))

上のページにあった break continue 付きの while マクロを改造して break
と continue を引数で渡さなくてもいいようなマクロを define-syntax で書
くにはどうするんですか? define-macro だったら

(define-macro (while2 test . body)
`(block break
(let _loop ()
(cond (,test
,@body
(_loop))))))

でいいと思うんですが。(gensym してないので手抜き)
;; block は上のページに載っているマクロです。