100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

Installing Common Lisp and the REPL

A practical guide to installing the SBCL Common Lisp implementation and getting comfortable working in the interactive REPL.

FoundationsBeginner8 min readJul 10, 2026
Analogies

Installing Common Lisp and the REPL

Unlike languages that require a separate compile-then-run cycle for every change, LISP is traditionally developed interactively through a REPL, a Read-Eval-Print Loop that reads one expression, evaluates it, prints the result, and waits for the next. A LISP implementation, such as SBCL, bundles a compiler, a runtime, and this REPL together, so getting set up means installing one implementation rather than assembling separate tools. This lesson walks through installing SBCL and running your first commands at the prompt.

🏏

Cricket analogy: Working in a LISP REPL, where you evaluate one expression and immediately see the result, is like a batsman facing throwdowns in the nets before a match; you test one shot at a time and adjust instantly, rather than waiting until the actual innings to find out if your technique works.

Choosing an Implementation

Several free Common Lisp implementations exist, and beginners are best served by SBCL (Steel Bank Common Lisp), which compiles code to fast native machine instructions and has the largest, most active community. Alternatives include Clozure CL (CCL), also fast and mature; ECL (Embeddable Common Lisp), which compiles to C and is well suited for embedding Lisp inside other applications; and ABCL (Armed Bear Common Lisp), which runs on the JVM for tight Java interoperability. Commercial options like LispWorks add IDEs and support contracts. This course uses SBCL throughout.

🏏

Cricket analogy: Choosing SBCL over other Common Lisp implementations is like most franchises picking pace-heavy bowling attacks in modern T20 leagues; it's the option most teams converge on because of consistently proven performance.

Installing SBCL

On macOS, the simplest path is Homebrew's brew install sbcl command. On Debian and Ubuntu-based Linux, SBCL is available directly through apt. Windows users can download a prebuilt installer from the official SBCL website, sbcl.org, or install it through the Windows Subsystem for Linux using the same apt command. After installation, running sbcl --version at the terminal confirms the binary is on your PATH and reports the installed version.

🏏

Cricket analogy: Running a single package-manager command to get a working environment is like a franchise signing an overseas all-rounder through the auction: one transaction and the player, the interpreter, compiler, and REPL, is ready to take the field immediately.

bash
# macOS (Homebrew)
brew install sbcl

# Debian/Ubuntu
sudo apt-get update
sudo apt-get install sbcl

# Verify installation
sbcl --version

Working in the REPL

Launching sbcl from the terminal drops you at an asterisk prompt, ready to read your next expression. Typing an arithmetic expression like (+ 2 3) evaluates it immediately and prints the result, 5, on the next line. You can define functions with defun, print text with format, and inspect values, all without leaving the interactive session. Because each expression is a self-contained unit, mistakes are cheap: you fix a typo and re-evaluate just that one line rather than rerunning an entire program.

🏏

Cricket analogy: Typing an arithmetic expression at the SBCL prompt and instantly seeing the answer echoed back is like a bowler sending down a single practice delivery in the nets and immediately checking the speed gun reading; quick, isolated feedback on exactly one action.

lisp
$ sbcl
* (+ 2 3)
5
* (format t "Hello, LISP!~%")
Hello, LISP!
NIL
* (defun square (x) (* x x))
SQUARE
* (square 7)
49
* (quit)

The command to exit the REPL differs by implementation and version: in SBCL use (quit) or (sb-ext:exit), in Clozure CL use (quit), and in some setups Ctrl-D (end-of-file) also works. Typing exit or quit as bare symbols without parentheses will just be echoed back as unbound-symbol errors, not executed.

  • A LISP implementation such as SBCL bundles a compiler, runtime, and an interactive REPL (Read-Eval-Print Loop).
  • SBCL (Steel Bank Common Lisp) is the most widely used free Common Lisp implementation, valued for its fast native-code compiler.
  • Install SBCL via a package manager: brew install sbcl on macOS or sudo apt-get install sbcl on Debian/Ubuntu.
  • The REPL reads one expression, evaluates it, prints the result, and loops, giving instant feedback for every line of code.
  • Common REPL actions include defining functions with defun, evaluating arithmetic, and printing with format.
  • Exit the REPL with (quit) or (sb-ext:exit); the exact form can vary by implementation.
  • Working REPL-first is a defining habit of LISP development, letting you build and test programs incrementally rather than write-compile-run cycles.

Practice what you learned

Was this page helpful?

Topics covered

#Programming#LISPStudyNotes#InstallingCommonLispAndTheREPL#Installing#Common#Lisp#REPL#StudyNotes#SkillVeris#ExamPrep