Course Overview

What this Lisp Programming course covers, how to use it, prerequisites.

A structured, hands-on course on Lisp, the family of languages built on s-expressions, code-as-data, and the read–eval–print loop. It runs from the core ideas every Lisp shares (atoms, lists, cons cells, quote, lambda, recursion, closures, macros) through a tour of the major dialects (Scheme/Racket, Common Lisp, Clojure, Emacs Lisp, and others) to the deep ideas Lisp is famous for: the metacircular evaluator, continuations, hygienic macros, DSLs, logic programming, and building your own Lisp interpreter.

This course covers the Lisp family as a whole. For a complete, dialect-specific deep dive into Common Lisp (CLOS, the condition system, ASDF, SBCL, and more), see the companion Common Lisp course on this site.

Course Overview

Beginners, developers curious about functional programming and metaprogramming, CS students (SICP-style), Emacs users, Clojure/Racket/CL newcomers

Basic programming familiarity helps but isn't required ~70–90 hours (self-paced), 10–12 weeks

Racket (DrRacket) or Chez/Guile/Chicken Scheme, SBCL (Common Lisp), Clojure CLI, Emacs; Python 3 for Part V

REPLs for each dialect, Exercism (Scheme, Common Lisp, Clojure, Racket, Emacs Lisp tracks), SICP exercises, 4Clojure-style problems, Advent of Code

Unless noted otherwise, generic examples use Scheme syntax (it's the smallest Lisp). Equivalent Common Lisp and Clojure syntax is shown where it differs.

Foundations → Core Ideas → Dialect Tour → Advanced Concepts → Implement a Lisp → Lisp in Practice
(1–8)         (9–16)       (17–23)        (24–32)             (33–37)            (38–42)