Iwanna Learn Scheme

Scheme Learning resources

SICP is not really a scheme book per se. It is more a 'learn what programming is actually about' (not to be confused with teach-yourself-to-program-in-3-hours books), which happens to use (a subset of) scheme. It is also quite likely the best introduction to computation book every written. On the other hand, it moves too quickly for many true neophytes. Regardless of the introductory nature, most professional programmers with years of experience will probably find things of value in the pages and exercises....

Such as?

That really depends on your background. They cover such a broad range of topics that there are likely to be things in there you haven't thought about before. It also espouses an approach to ('introductory') computation that transcends the usual tendency to get bogged down in syntax and particular algorithms. Have a look for yourself, the entire text is on the net.

The two things I got from SICP are an understanding of some mysterious Lisp things (e.g. tail recursion, lambda functions, first-class functions, and higher-order functions) and a bunch of interesting algorithms (e.g. logarithmic-time Fibonacci numbers, probabilistic primality) - and this was just the first chapter. After multiple failed attempts learning Lisp through SLIME, I'm convinced that DrScheme and SICP is the way to go. -- KenShirriff?


I found that getting LispMe on my PalmPilot, and StructureAndInterpretationOfComputerPrograms with Plucker to be a real help in my attempts to learn scheme. It is really handy to pull it out, and hack away while waiting in line, in transit on a bus, or even, on the pot. With an older PalmPilot that can run LispMe running in the 10's of dollars, it really can be quite cheap.

There is also PocketScheme for the PocketPc http://www.mazama.net/scheme/pscheme.htm And PLT scheme is a quick free desktop download: http://www.plt-scheme.org/


Are Continuations really that important to understand, or are they a Red Herring in ones journey to learn scheme?

Depends on what you're after. If you want to learn how to do the same things in Scheme that are commonly done in other languages, you can skip continuations. If, however, you want to learn about some of the things that are at the heart of what Scheme is, and why it was created as a separate language, and what it can do that can't be done in other languages (unless they borrow from Scheme) then continuations are one of the important items on that list. A short history of Scheme might help one decide.

That history is tightly related to the creation of Smalltalk (and also the ActorsModel), interestingly.


I have the name of a function inside of a string variable, and now I want to do two things, test to see if the function exists, and if so, call it. I have a feeling that eval and procedure? might be useful in here, but I can't seem to come up with the right combination of schemey goodness. So what is the easiest way to do this?

Short (self answer) no easy wasy to do this, at least, not from within LispMe. It could probably be done quite easily in a scheme that implemented exceptions.


see also: IwannaLearn, TheLittleSchemer, TheSchemeProgrammingLanguage, SchemeIdioms, LispMeUnit, ProgrammingOnHandHelds


CategoryScheme


EditText of this page (last edited February 28, 2014) or FindPage with title or text search