The concept of cascading (Really DSSSL and Scheme)
From: Paul Prescod <email@example.com>
Date: Tue, 29 Apr 1997 18:02:58 -0400 (EDT)
Well, the spec [DSSSL] is an ISO spec. It contains all of Scheme, for
instance, for those that need an escape hatch to something programmatic.
It most certainly does not contain all of Scheme. Particularly important
omissions are set! and call-with-current-continuation.
This is not just nitpicking on my part about a couple of forms that
happen to be omitted. The designers of Scheme adopted a minimalist
approach to language design, prefering one simple, clean, way to
accomplish a given task to multiple ways, even if the multiple ways
would all be useful, as long as the multiple ways can all be
implemented in terms of one simple language construct. So dozens of
potentially useful control flow constructs were omitted from Scheme,
not because the designers of Scheme thought that these constructs were
a bad idea, or that they weren't useful, but because they can all be
constructed easily from call-with-current-continuation. And set! isn't
just a single special form that is being omitted in DSSSL: there is a
dramatic difference between purely functional languages like DSSSL and
languages with assignment and side effects like Scheme.
DSSSL has a scheme-like syntax, and many of the functions in these
two languages have the same names. But DSSSL does not contain all of
Scheme; it is in fact a dramatically different language than Scheme.