(And I would not want to do loop in Scheme. That's just too imperative. Interestingly Haskell's special syntax for Monads and its lazyness makes the need for most macros / special forms go away (though not for all, and Haskell has plenty of syntax on the surface).)
Consider that Paul Graham, the author of the fine book "On Lisp", chose PLT Scheme to implement Arc on top.
(And I would not want to do loop in Scheme. That's just too imperative. Interestingly Haskell's special syntax for Monads and its lazyness makes the need for most macros / special forms go away (though not for all, and Haskell has plenty of syntax on the surface).)
Consider that Paul Graham, the author of the fine book "On Lisp", chose PLT Scheme to implement Arc on top.