[plt-scheme] Re: Is R6RS useless for PLT?

From: Tom Gordon (thomas.gordon at fokus.fraunhofer.de)
Date: Tue Nov 25 05:37:42 EST 2008

Dear Grant,

> It has been discussed before that Scheme is an experiment, it is an
> idea that has spawned many Scheme-like languages, since there is no
> one definition.

One goal of a developing a standard such as R6RS is to try to get all  
the stakeholders together with the aim of developing a one definition,  
with the hope, if not expectation, that this will led to some  
convergence and reduction of unnecessary, indeed counterproductive,  

> Roughly, these are dialects. R6RS is one dialect in
> which you are interested, I am too.

Not all dialects are equal.  R6RS is a standard.  Arguably *the*  

> Look at PLT, though, it support a *lot* of dialects. That is the  
> philosophy behind it. The philosophy is
> not to push one single philosophy.

I think this philosophy is really great for two purposes: 1) providing  
support for legacy code, and 2) experimenting with new dialects which  
can help us to gain the experience need to evolve the standard further.

What I'm not too happy about, is the choice of the PLT team to develop  
and publish a new Scheme dialect which overlaps with R6RS, rather than  
building on or extending it, just *after* R6RS became ratified.    I  
would much have prefered that  R6RS had first been given a longer  
period of time to become established and waited a bit for feedback  
from users on their experiences with using R6RS, and use this feedback  
to build experimental extensions to R6RS which are feed into the  
development of R7RS.

> All of the maintainers have their own interests in particular dialects
> that meet their needs (Typed, HtDP, #scheme...), so it is unfair of us
> to expect them to push a single dialect. That is just not the spirit
> of Scheme, anyway.

HtDP needs to be supported, because it is used for courses and one  
can't expect the book to be rewritten anytime soon. Fine.

Type Scheme is a nice experimental language.  I really appreciate this  
effort.  But I would have appreciated it even more if it had been  
developed as an extension of R6RS.

> DrScheme can be used perfectly well for writing R6RS code and  
> reading the documentation. Everything "just works". It is awesome  
> for R6RS.

Here I have to disagree a bit.  PLT is OK for developing R6RS code.  I  
do this all the time.  But it is not "awesome".   Some features of the  
development environment don't work with R6RS code.  Such as loading  
additional libraries into the "interactions" window.  And many PLT  
modules cannot be used in R6RS programs, because of the  
incompatibility between mutable and immutable lists.   (I've tried the  
suggested work around and do not find it sufficient.)   A minor  
point:  I also don't like R6RS lists being displayed with braces,  
{....}.  Since the PLT lists are non-standard, it would have been  
better to have them displayed with the non-standard syntax.   (I  
understand their is some way for me to change this behavior, but  
haven't figured it out yet.)

Developing R6RS code using PLT makes me feel a bit like a second-class  


Posted on the users mailing list.