Choosing a Lisp and Setting Up

Racket (Scheme family) racket-lang.org installer, brew install --cask racket

racket, DrRacket (beginner-friendly IDE) Chez / Guile / Chicken / Chibi Scheme

Package managers (apt install guile-3.0, brew install chezscheme)

scheme, guile, csi, Geiser (Emacs) Common Lisp (SBCL)

apt install sbcl, brew install sbcl, Portacle (all-in-one)

sbcl, Emacs + SLIME/Sly, VS Code + Alive brew install clojure/tools/clojure or the install script; Java required

clj, Calva (VS Code), CIDER (Emacs), Cursive (IntelliJ) Emacs Lisp M-x ielm, *scratch* buffer Babashka (scripting Clojure) brew install borkdude/brew/babashka luarocks install fennel

racket                                  # Racket REPL
sbcl                                    # Common Lisp REPL
clj                                     # Clojure REPL
emacs -Q --eval '(ielm)'                # Emacs Lisp REPL

2.1 Hello, World in Every Major Lisp

;; Scheme / Racket
(display "Hello, World!")
(newline)
;; Common Lisp
(format t "Hello, World!~%")
;; Clojure
(println "Hello, World!")
;; Emacs Lisp
(message "Hello, World!")
;; Fennel
(print "Hello, World!")