Peter Bex scripsit: > Good question. I guess it's a little arbitrary. I would say the main > difference is in the size of the standard. r5rs or r7rs-small is a > reasonable size to implement in full, even for smallish implementations. > Requiring the whole of r7rs-large to be implemented seems overkill.
Sure. Which is why I want to thoughtfully draw a line between the required and the optional parts of the standard. > Since it's going to be so very large, I'm unsure whether *any* Scheme > (except, perhaps, for Racket) Alas, the Racketeers are not even interested in R7RS-small; they consider Racket to be a post-Scheme language. > will implement every part of it. I have hopes rather for the Scheme implementations that already have large libraries and mostly just need to repackage them, like Chicken. > [I]t's a good idea to avoid baking in too many assumptions about > which subset of r7rs-large is going to be implemented in any compatible > Scheme system. A standard is a contract between implementer and user. Too few assumptions, and the user suffers; too many assumptions, and the implementer suffers. It's a Goldilocks problem: not too large, or too small, but just right. > [I]f things like "needs built-in bignum support" are added to the spec, > that may cause trouble. In principle. But the only Schemes that are aimed at general application development that lack bignums are Chicken and Wraith, and for Chicken there is a straightforward workaround. (The chance that Stalin will ever advance beyond R4RS is practically nil. The development community around Stalin is about the most dysfunctional one I've ever encountered; there isn't even a mailing list to send patches to.) > And if it doesn't cause trouble, those parts of the spec that work with > Chibi turn out to not really need bignum support. So why would you > arbitrarily require it for the entire spec, even if many libraries > aren't dependent on it? So that application developers can count on just having bignums, like they can count on having call/cc or tail recursion. Lots of implementations of other languages do tail recursion to some degree, but the fact that Scheme *requires* tail recursion allows a different programming style. > But it would only not be compliant because it was declared not to be, > for no real reason. Equally true of any other standard feature. -- John Cowan http://www.ccil.org/~cowan [email protected] Yes, chili in the eye is bad, but so is your ear. However, I would suggest you wash your hands thoroughly before going to the toilet. --gadicath _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
