2009/9/4 John Cowan <[email protected]>: > David Van Horn scripsit: > >> As an exercise in trying to figure out precisely what one can expect to >> find when moving between Schemes, I reviewed the R3,4,5,6RS and >> IEEE/ANSI standards. I wanted to find their least common denominator >> (the "essential" Scheme); a list of must-haves for a Scheme to be a Scheme. > > R2 and R3 are dead. R4 is very nearly dead; the implementations that only > support R4RS are pretty much unmaintained. R5 and R6 are where it's at.
I'm sorry, but you're really, really wrong here. R4 was the last highly portable Scheme, and when I am going for maximal portability that is the standard I adhere to. Note that macro transformers of any sort were optional in R4. And neither DYNAMIC-WIND not CALL_WITH_VALUES were in that language (and both should be retired in favor of the cleaner semantics that can be implemented with the R4 primitives). R4RS is most certainly not dead. R3 might be dead - Bog knows there are enough problems (e.g. the boolean issue) with R3 interpreters and code as to make Cake(R3,R4) and Cake(R4,R3) to be effectively zero. > 84 bound symbols. My question is, why do we need a standard as tiny as > this Because there are still some broken semantics even in the specification when it is that small. Parallelism isn't adequately addressed. User data type extension mechanisms are so inconvenient as to be impossible to use. Continuation semantics are not orthogonal with procedure calls. Various numeric types are inadequately specified. I/O is inapropriately factored. But that's about all really. LAMBDA is a perfectly adequate module system (modulo unhygienic macros) and if the above issues were fixed I think pretty much everything else that people want in R-future RS falls out as a Small Matter Of Programming. david rush -- GPG Public key at http://cyber-rush.org/drr/gpg-public-key.txt _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
