One of the fundamental ideas in Scheme is to be minimal and elegant to the point of pain. In early Schemes, there was no real block scoping. You had to create block scopes using
let as you do today, but
Likewise, the Scheme standard mandates Tail Call Optimization because the philosophy of the language is that if you have recursion, you don’t need loops. And there is no real exception system because if you have continuations, you can make pretty-much anything you want for yourself.
names and clans
It leads one to think that tools like Esprima might be a good fit with the language rather than this one weird trick for eliminating code wrinkles.
I think it’s mostly false, but just true enough to be interesting. And that’s good enough for me.
p.s. Dave Herman pointed me to a great essay. The opening line says it best:
Programming language “paradigms” are a moribund and tedious legacy of a bygone age.