Let Over Lambda -- 50 Years of Lisp

by Doug Hoyte

  1. Introduction
    1. Macros
    2. U-Language
    3. The Lisp Utility
    4. License
    5. Thanks
  2. Closures
    1. Closure-Oriented Programming
    2. Environments and Extent
    3. Lexical and Dynamic Scope
    4. Let It Be Lambda
    5. Let Over Lambda
    6. Lambda Over Let Over Lambda
    7. Let Over Lambda Over Let Over Lambda
  3. Macro Basics
    1. Iterative Development
    2. Domain Specific Languages
    3. Control Structures
    4. Free Variables
    5. Unwanted Capture
    6. Once Only
    7. Duality of Syntax
  4. Read Macros
    1. Run-Time at Read-Time
    2. Backquote
    3. Reading Strings
    4. CL-PPCRE
    5. Cyclic Expressions
    6. Reader Security
  5. Programs That Program
    1. Lisp Is Not Functional
    2. Top-Down Programming
    3. Implicit Contexts
    4. Code-Walking with Macrolet
    5. Recursive Expansions
    6. Recursive Solutions
    7. Dlambda
  6. Anaphoric Macros
    1. More Phors?
    2. Sharp-Backquote
    3. Alet and Finite State Machines
    4. Indirection Chains
    5. Hotpatching Closures
    6. Sub-Lexical Scope
    7. Pandoric Macros
  7. Macro Efficiency Topics
    1. Lisp Is Fast
    2. Macros Make Lisp Fast
    3. Getting To Know Your Disassembler
    4. Pointer Scope
    5. Tlists and Cons Pools
    6. Sorting Networks
    7. Writing and Benchmarking Compilers
  8. Lisp Moving Forth Moving Lisp
    1. Weird By Design
    2. Cons Threaded Code
    3. Duality of Syntax, Defined
    4. Going Forth
    5. Going Forther
    6. Going Lisp

Appendices

  1. Languages to Learn
    1. Road to Lisp
    2. C and Perl
    3. Lisp Incubators
  2. Languages to Avoid
    1. Opinion
    2. Blub Central
    3. Niche Blub
  3. Implementations
    1. CMUCL/SBCL
    2. CLISP
    3. Others
  4. Lisp Editors
    1. emacs
    2. vi

    All material is (C) Doug Hoyte unless otherwise noted or implied. All rights reserved.