[plt-scheme] . nitpick .
On 6/11/07, Grant Rettke <grettke at acm.org> wrote:
> We should expect that folks want to run r5rs with the addition of
> modules. Modules are one of the first things for which people will
> look when working with r5rs, and most distributions seem to include
> them.
Erm. Most Schemes have incompatible notions of how to organize code.
Eg. The word 'module' in Chez has a very different meaning from PLT:
And in Bigloo, modules are not the same as in PLT:
http://pauillac.inria.fr/cdrom/www/bigloo/manual/bigloo-3.html
Until the Scheme community starts making it possible for us to easily
write portable code that does practical things, you are probably best
off choosing an implementation and learning it. Given that Scheme
implementations are like opinions (everybody's got one), you might as
well pick one, learn it inside-out, and stick with it. I suspect
people on this list would recommend PLT Scheme, for reasons that
continue to elude me... so be wary. Something about traveling salesmen
in sheep's clothing, and whatnot.
If you use full MzScheme, you're not going to learn anything that
makes you a "worse" Scheme programmer in some other implementation.
And, your experience learning the language will be a better one,
because you won't be fighting the fact that the PLT Help Desk
(excellent resource) is geared towards MzScheme, not R5RS. Writing
strictly R5RS Scheme is an exercise, in my opinion, for the
experienced Schemer, not for the Scheme beginner.
All of that said, if you're just starting out with the language, you
really should consider working through HtDP (http://www.htdp.org/) in
the Beginner/Intermediate/Advanced Scheme language levels. If you're
an experienced programmer, you should be able to do this reasonably
quickly. As a result, you'll be much more familiar with the language
and tools, and you'll have developed some good idioms/practices for
when you contribute work back to the community. But perhaps that has
already been suggested; I was off-list for a while due to my
university kindly canceling my accounts while I am still an employee.
Cheers,
Matt