The point is a pedantic, not a practical one (as far as I can tell) - that there´s no *formal* requirement for Scheme code to be represented as lists. But since that´s the blindingly obvious way to represent Scheme source, in practice it's not a problem.
In fact, Common Lisp macros are defined in a way that means they are susceptible to certain errors. In contrast, if you use a Scheme with "hygienic macros", you avoid this problem (of course, you can just follow the guidance in On Lisp and you shouldn't have problems with Common Lisp either).
The big difference between the two languages is the size/definition issue. If you want a well defined and comprehensive language, use Common Lisp. If you want a simpler language that people are extending in different and interesting ways, and are able to pick an implementation to suit your specific requirements, use Scheme.
That page is somewhat biased towards Common Lisp - in particular, it´s odd to give more weight to the pedantic issue about defining code representation than the practical issue of tail call optimisation.
|