Thanks
I wrote one, but it is in Italian, sorry! Coming from Python, the
most
disturbing thing about Scheme is the abundance of implementations.
Basically,
you have to chose an implentation and stick to it. It is possible that
the R6RS
will improve the situation, but right now portability between
implementations
for non-trivial code is still a dream. An implementation which is
particularly
practical and with many libraries is Chicken Scheme (which also has
eggs,
similar to Python eggs but better, since Chicken got them first ;)
Michele Simionato
michele> Coming from Python, the most disturbing thing about
michele> Scheme is the abundance of implementations.
I agree.
michele> Basically, you have to chose an implentation and stick to
michele> it.
I agree with this, too. I favor PLT scheme myself, partly because it
(like Chicken) has a nice big library (called "PLaneT") full of useful
contributed stuff, in addition to a nice big built-in library of
useful stuff. I suspect a Python programmer would want such
libraries.
--
Imagine this movie with Barbara Stanwyck and Fred MacMurray
and it would work for you. Better still, just rent "Double
Indemnity" and the hell with it.
-- Roger Ebert, on "Derailed (2005)"
For some folks it is documentation, for others it is the libraries,
and even others it is the community.
For me it was all three, so I went with PLT.
I had some very incomplete notes that I wrote up when starting with
PLT Scheme from a Python background. Maybe they'll be helpful for
you. Here's one comparing the module systems between Python and PLT
Scheme:
http://hkn.eecs.berkeley.edu/~dyoo/plt/modules.text
PLT Scheme comes with a class library that provides similar
functionality to a Python class:
http://schemecookbook.org/Cookbook/IntroductionToMzlibClasses
If you're willing to play with beta software, you might try the
nightly builds; the guides for them are especially nice:
Just as a warning, some of the material in the docs applies only to
3.99. You can grab the nightly build at:
good for you! Scheme is far more solid a language than python. OTOH,
it's not batteries-included like python in regards to solid and varied
portable libs. Like others said, you choose an implementation and
stick with it.
You may also find the language somewhat barroque and verbose, for
things like accessing array slots with function calls rather than
handy syntax for ranges and such. Fear not! In time, you'll be
creating your own syntax and using that instead of the builtins... :)
There is this:
Python for Lisp Programmers
http://norvig.com/python-lisp.html
While it does compare Lisp to Python, some parts of it will still be
applicable for Scheme.
Sarah