Structure and Interpretation of Computer Programs
The legendary SICP textbook - a masterpiece of computer science education using Scheme.
A curated collection of resources to master the most elegant family of programming languages
(journey (from 'curious) (to 'enlightened))John McCarthy creates Lisp at MIT, making it the second-oldest high-level programming language still in use today (after Fortran).
Gerald Jay Sussman and Guy L. Steele Jr. create Scheme, a minimalist dialect emphasizing lexical scoping and tail-call optimization.
Common Lisp is standardized, unifying many Lisp dialects into a powerful, feature-rich language.
Rich Hickey releases Clojure, bringing Lisp to the JVM with immutable data structures and modern concurrency primitives.
New dialects like Janet, Fennel, and Hy bring Lisp ideas to embedded systems, game development, and Python interop.
The legendary SICP textbook - a masterpiece of computer science education using Scheme.
A delightful, mind-bending introduction to recursive thinking and Lisp through Socratic dialogue.
Harold Abelson and Gerald Sussman's paper on why Lisp is ideal for building complex systems.
Influential essays on Lisp including 'Beating the Averages' and 'What Made Lisp Different'.
The industrial-strength Lisp with an extensive standard library, powerful metaprogramming, and decades of real-world use.
Peter Seibel's modern, practical introduction to Common Lisp. Available free online.
David Touretzky's beginner-friendly book with a focus on symbolic computation.
Paul Graham's advanced exploration of Lisp macros and bottom-up programming.
Doug Hoyte's deep dive into closures and advanced macro techniques.
The complete ANSI Common Lisp specification - the authoritative reference.
Modern Common Lisp community site with tutorials, library documentation, and success stories.
Steel Bank Common Lisp - a high-performance, open source Common Lisp compiler.
A portable, multiplatform Common Lisp development environment. Perfect for beginners.
The minimalist Lisp that proves less is more. Scheme's elegance makes it ideal for teaching and language research.
R. Kent Dybvig's comprehensive guide to Scheme, covering R6RS.
A systematic approach to program design using Racket/Scheme. Great for beginners.
A practical Scheme that compiles to C. Great FFI and egg repository.
GNU's official extension language. Powers Guix, LilyPond, and more.
One of the fastest Scheme implementations, now open source.
Community wiki with tutorials, idioms, and implementation comparisons.
The "language-oriented programming" language. Build your own languages with Racket's unmatched DSL capabilities.
The official introduction to Racket - well-written and comprehensive.
Matthew Butterick's guide to making languages with Racket. Inspiring and practical.
Learn Racket by building games. Fun illustrated approach.
Exemplary documentation covering the language and all bundled packages.
Active community chat for Racket programmers of all levels.
Modern Lisp for the JVM, JavaScript, and CLR. Immutable data, functional programming, and practical concurrency.
Daniel Higginbotham's fun, irreverent introduction to Clojure. Free online.
Kyle Kingsbury's (Aphyr) excellent tutorial series for beginners.
Comprehensive guide to ClojureScript for frontend development.
Practice Clojure with interactive coding exercises.
Official site with guides, references, and community resources.
Conference talks and tutorials from Rich Hickey and the Clojure community.
Fast-starting Clojure for scripting. Write Clojure scripts that start instantly.
The Lisp powering Emacs - one of the most extensible programs ever created. Customize everything.
Official GNU tutorial for Emacs Lisp beginners.
The complete reference for Emacs Lisp. Comprehensive and authoritative.
Mickey Petersen's excellent book on becoming an Emacs power user.
Community wiki with tips, code snippets, and configuration ideas.
A lightweight Lisp for scripting and system programming. Embeddable in applications like Lua, not to be confused with embedded devices.
Official documentation covering the language, standard library, and C API.
A friendly introduction to Janet by Ian Henry.
Janet bindings for Raylib. Make games with Janet!
Janet Project Manager - package manager and build tool for Janet projects.
The Lisp family keeps growing. These languages bring Lisp ideas to new domains and platforms.
A Lisp that compiles to Lua. Perfect for game development with L?VE2D.
A Lisp embedded in Python. Access Python's ecosystem with Lisp syntax.
A radically minimalist Lisp focused on simplicity and expressiveness.
Lisp syntax for the Erlang VM. Distributed, fault-tolerant Lisp.
A statically typed Lisp without garbage collection for real-time systems.
A Lisp for microcontrollers. Run Lisp on Arduino, ESP32, and other embedded devices.
Lisp with optional indentation-based syntax. Python-like looks, Lisp semantics.
Paul Graham's experimental Lisp dialect focused on brevity.
Paul Graham's latest Lisp specification - a spec for a new dialect.
"Scheme in the browser" they said. First-class functions, closures, and lambda... under a Java costume.