Getting Started with Lisp

How does one get started with Lisp? Well, one has to start with a Lisp Implementation! How you do that depends on how much of a gearhead you are, and what operating system you’re using, and whether you wish to use free software or a commercial implementation.

Free One-Click Installations

The portacle distribution has packages for Windows 7+ x64, Mac OS X 10.11+, and Linux 3.13+ (pretty much all modern Linuxen). This will install SBCL (Steel Bank Common Lisp), Emacs (editor), Quicklisp (defacto package manager), all bundled together and preconfigured. If you’re more of a gearhead and would like to install pieces on your own, see below for some operating-system dependent instructions.

Even though portacle comes with Emacs, you can use whatever editor you want and invoke SBCL directly. The best sort of editor should some ‘lisp mode’ such as ‘vim‘ that can colorize syntax and perform parenthesis matching.

Linux (free)

Ubuntu variants with APT

Assuming you’re already familiar with Linux and its terminal window, probably the simplest Lisp Implementation to use is SBCL (Steel Bank Common Lisp). Most of these variants of Linux have SBCL pre-built and in its package set:

$ sudo apt install sbcl
Reading package lists… Done
Building dependency tree
Reading state information… Done
Suggested packages:
sbcl-doc sbcl-source slime
The following NEW packages will be installed:
sbcl
0 upgraded, 1 newly installed, 0 to remove and 3 not upgraded.
Need to get 8,580 kB of archives.
After this operation, 47.5 MB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu bionic/universe amd64 sbcl amd64 2:1.4.5-1 [8,580 kB]
Fetched 4,811 kB in 36s (132 kB/s)
Selecting previously unselected package sbcl.
(Reading database … 189165 files and directories currently installed.)
Preparing to unpack …/sbcl_2%3a1.4.5-1_amd64.deb …
Unpacking sbcl (2:1.4.5-1) …
Setting up sbcl (2:1.4.5-1) …
Processing triggers for man-db (2.8.3-2ubuntu0.1) …
$ sbcl
This is SBCL 2.0.7, an implementation of ANSI Common Lisp.
More information about SBCL is available at http://www.sbcl.org/.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
* (quit)
$

Mac OS X (free)

Your best bet here is to use Homebrew:

$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)”
<lots of stuff>
$ brew install sbcl
brew install sbcl
Updating Homebrew…
==> Downloading https://homebrew.bintray.com/bottles/sbcl-2.0.7.high_sierra.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/54364f8aa91c03efced4f014618360ffd4cc9627ca0a9757faa4019703476e8c?response-content-disposition=attachme
################################################################## 100.0%
==> Pouring sbcl-2.0.7.high_sierra.bottle.tar.gz
🍺 /usr/local/Cellar/sbcl/2.0.7: 1,397 files, 60MB
$ sbcl
This is SBCL 2.0.7, an implementation of ANSI Common Lisp.
More information about SBCL is available at http://www.sbcl.org/.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
(quit)
$

Commercial Implementations

That I’m aware of the two canonical commercial Lisp implementations are:

Both are very high quality Lisp implementations from long-standing companies, and should be considered for commercial or industrial-strength work.