[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] *TELUS Detected Spam*Re: [r6rs-discuss] returning back to pattern matching

On 2010-12-23, at 17:53, John Cowan wrote:
> In both WG1 and WG2, all modules are optional; the decision to put a
> module in WG1 represents a judgment on its wide utility, or in some cases
> a Steering Committee mandate -- we can make R4RS/IEEE features optional,
> but we can't leave them out altogether without crossing a very high bar.

I have considerable reservations about making modules optional. This is a license to create incompatibility. Suppose that there are 10 optional modules; then there is a potential of 2^10 = 1024 different combinations of modules an individual implementation might offer (ignoring module dependencies). Some implementers might choose not to provide a given module because they have an alternative they consider better. This in turn will put paid to portability, not only of software, but also of teaching materials about the language. 

Since we don't have any Scheme Police available to track down miscreant implementers, and since I think a good standard should convince people to follow it because of its quality, I'd like to suggest the following. 

1. Consider making mandatory as many of the core modules as possible (as mandatory as anything in Scheme can be). 
2. Place those modules that are not mandatory into a second `Optional Extensions' section in the report. This will help those people concerned about portability avoid them wherever possible. 
3. For those modules for which an efficient portable implementation in Scheme is possible, take them out of the WGn report and move them to a library document of the form I described in an earlier email today. Such a library can then run with any WGn-compliant implementation. 

When I review the WG1 draft, one of my test cases will be `can I write a portable WG1 Scheme program to play blackjack, without needing peculiar circumlocutions' (I actually have about a dozen test cases like that in my mind, from years of teaching introductory CS courses). Everything I need for a task like that should be in every implementation that claims to comply with the report. People who publish teaching materials for Scheme ought to be able to make them work without 50 (above, I said 1024!) different editions for different implementations. 

-- vincent
Scheme-reports mailing list