Why Learn Scheme

Back when I was learning Scheme, my go to implementation was DrScheme. It had great libraries, an excellent IDE, ran on Windows, Macs, and Linux, and produced good standalone code. Eventually it drifted away from the Scheme specification and was renamed DrRacket. It’s still a great environment and a good way to get started with Scheme.

Micah Cantor, a student at Grinnell College, provides his answer to the question, “Why should I learn Scheme?” The question was occasioned by the fact that his introductory programming course was taught using Racket and there was a lot of student grumbling about wasting time learning a language they wouldn’t use instead of one that could get them a job.

Putting aside the fact that a liberal arts education is different from a vocational education, the question deserves an answer and Cantor provides a pretty good one. The short answer is that Scheme and the functional programming paradigm teach a new way of thinking about writing programs and solving problems.

A good example is recursion. The usual introduction using a C-like language involves silly examples like factorials and Fibonacci numbers: problems that are ill suited to a recursive solution even though their definition maps naturally into recursion. In Lisp dialects—especially Scheme with its guaranteed tail call optimization—recursion is the natural iteration mechanism and one of the primary tools used by Lisp programmers.

Suffice to say that learning Scheme or some other Lisp is life changing for a programmer. I know this is true because it happened to me. After almost an entire career in programming I learned Scheme and read SICP and it changed they way I think about and practice programming.

This entry was posted in General and tagged , . Bookmark the permalink.