[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] Ratification vote for R7RS-small
Ray Dillinger scripsit:
> Scheme is the language whose design was driven by the philosophy that
> rather than adding features it is better to remove restrictions which
> have made additional features appear necessary.
> WG1 accepted a charter which forbade it from doing exactly that.
Actually our charter doesn't say that. What it says is:
When deciding which features to include in the language, working
group 1 should consider all features provided by R5RS Scheme,
and all criticisms of those features. Existing features of
IEEE Scheme may be removed only if a strong case can be made
that they are fundamentally flawed. Insofar as practical, the
language should be backwards compatible with the IEEE standard,
the R5RS standard, and an appropriate subset of the R6RS standard.
So we could have removed R5RS features, and with a sufficiently high
burden of persuasion, even IEEE features. Here's a list of what R5RS
has that IEEE does not:
macros (define-syntax, let-syntax, let*-syntax, syntax-rules)
laziness (delay, force)
string->list, list->string, vector->list, list->vector
string-copy, string-fill!, vector-fill!
multiple values (values, call-with-values)
evaluation (eval, scheme-report-env, null-env, interaction-env)
Some of these were discussed, and several (files, laziness, evaluation)
were moved to optional libraries that implementations need not support.
In that sense, R7RS-small is smaller than even IEEE Scheme, all of whose
features are mandatory.
But let's be concrete here. What restrictions would you propose to
remove from IEEE Scheme that would have made the additional features of
Said Agatha Christie / To E. Philips Oppenheim John Cowan
"Who is this Hemingway? / Who is this Proust? cowan@x
Who is this Vladimir / Whatchamacallum, http://www.ccil.org/~cowan
This neopostrealist / Rabble?" she groused.
--George Starbuck, Pith and Vinegar
Scheme-reports mailing list