Let Over Lambda -- 50 Years of Lisp
by Doug Hoyte
Introduction
Macros
U-Language
The Lisp Utility
License
Thanks
Closures
Closure-Oriented Programming
Environments and Extent
Lexical and Dynamic Scope
Let It Be Lambda
Let Over Lambda
Lambda Over Let Over Lambda
Let Over Lambda Over Let Over Lambda
Macro Basics
Iterative Development
Domain Specific Languages
Control Structures
Free Variables
Unwanted Capture
Once Only
Duality of Syntax
Read Macros
Run-Time at Read-Time
Backquote
Reading Strings
CL-PPCRE
Cyclic Expressions
Reader Security
Programs That Program
Lisp Is Not Functional
Top-Down Programming
Implicit Contexts
Code-Walking with Macrolet
Recursive Expansions
Recursive Solutions
Dlambda
Anaphoric Macros
More Phors?
Sharp-Backquote
Alet and Finite State Machines
Indirection Chains
Hotpatching Closures
Sub-Lexical Scope
Pandoric Macros
Macro Efficiency Topics
Lisp Is Fast
Macros Make Lisp Fast
Getting To Know Your Disassembler
Pointer Scope
Tlists and Cons Pools
Sorting Networks
Writing and Benchmarking Compilers
Lisp Moving Forth Moving Lisp
Weird By Design
Cons Threaded Code
Duality of Syntax, Defined
Going Forth
Going Forther
Going Lisp
Appendices
Languages to Learn
Road to Lisp
C and Perl
Lisp Incubators
Languages to Avoid
Opinion
Blub Central
Niche Blub
Implementations
CMUCL/SBCL
CLISP
Others
Lisp Editors
emacs
vi
All material is (C) Doug Hoyte unless otherwise noted or implied. All rights reserved.