MOTD

Message Of The Day

Sun, 02 Mar 2003

02:33 [zork(~/nick/scheme)] cat free_texts.txt

Free Scheme Texts On The Web

So Ed Lang got curious about all these books I listed the other day, but waffled about the cost. Aside from GEB, none of the books I listed are over US$20. Most of them are paperbacks -- slim little volumes.

But if you're genuinely not able to buy any books, but want to learn scheme, here's what there is on the net.

For starters, there's Teach Yourself Scheme in Fixnum Days. It's a very practically minded tutorial, and it doesn't hide the OS-interface features that have side effects. Most texts present lisp as an ethereal function evaluator, and give you no I/O beyond the REPL (Read, Eval, Print Loop) itself.

I haven't worked my way through that tutorial, but I'll probably give it a try sooner or later. It even lists CGI programming examples, which is kind of a trip. It seems to use mzscheme as the implementation for all the code examples.

If you're looking more for the no-math no-computers liberal arts oriented approach that TLS had, you may find How To Design Programs useful. It's actually the textbook to a course that uses DrScheme, which is a nice GUI scheme IDE with graphics libraries and other goodies. The trick to DrScheme is that it initially presents you with restricted feature sets of the language to keep beginners from getting too confused. It's really a classroom tool. It's actually based on mzscheme, if I remember correctly.

If you're a little more hardy, and are looking for an in-depth coverage of CS, there's always The Structure and Interpretation of Computer Programs. It's an amazing book! Although it's designed with portability across scheme implementations in mind, the course designed around it uses MIT Scheme.

Finally, if you're looking for a big Scheme reference, the canonical book is The Scheme Programming Language, 2nd Edition.

While not specifically about Scheme (it uses Common Lisp for most of the examples), the book On LISP has been recommended to me as a good way to learn how to think about macros. No, not like the goofy preprocessors that come with 1970s compiled languages, but a truly dynamic modification of the LISP evaluator! I'll let Paul Graham tell his own tale about the power of LISP macros.

Most of these are available in HTML format, except for On LISP. I have them all mirrored locally so I can read them on my zaurus and maybe print them all out some day. It irritates me that the images most TEX-to-HTML generators spit out are 1-bit. Why not take advantage of ghostscript to anti-alias?


[zork(~)] cal
[zork(~)] tree
[zork(~)] syndicate.py
[zork(~)] cat README