Prev Index Next

Why bother?

Those who do not know Lisp (or Scheme) are doomed to reinvent it.

I wrote this for two reasons:

  1. to teach myself Scheme, one of the many dialects of Lisp programming languages;
  2. and because Scheme has less literature, when compared to Lisp or other languages.

I wanted to learn Scheme because many claim that doing so will make you a better programmer. Looking back now, I find this to be true and I found many reasons to learn Scheme. The most important one is to learn about computation to improve computational thinking. Learning Scheme introduced me to numerous important concepts: evaluation, s-expressions, lambda expressions, procedures, procedure calls, recursion, tail-recursion, pairs, lexical closure, delayed evaluation, memoization, macros. If none of these mean anything to you, just look at their number.

The only knowledge I had was programming experience in C and some intuition about what computers, variables, functions, data structures, and pointers are.

Prev Index Next