git clone 'https://github.com/thephoeron/let-over-lambda.git'

(ql:quickload :let-over-lambda)


Join the chat at https://gitter.im/thephoeron/let-over-lambda

Build Status Coverage Status Available in Quicklisp BSD Simplified License

Doug Hoyte's “Production” version of macros from Let Over Lambda, including community updates; available from Quicklisp.

Read more about the book and code at: http://letoverlambda.com

News & Updates


Add symbols for anaphoric macro internals, IT, THIS, and SELF to package exports for better end-user experience. Will be available in April 2015 release of Quicklisp.


Issue with incompatible change to backquote syntax in SBCL 1.2.2 resolved; tested against and builds on SBCL 1.2.0-1 and 1.2.2. Will be available in the August release of Quicklisp.


Now available in the December 2013 distribution of Quicklisp


Make sure you have the latest Quicklisp distribution, then include it as a dependency in your system definition, or from the REPL evaluate (ql:quickload "let-over-lambda").

(ql:quickload "let-over-lambda")
(lol:flatten '((A . B) (C . D) (E . (F G H (I . J) . K))))
=> (A B C D E F G H I J K)

LET-OVER-LAMBDA now uses the named-readtables library instead of modifying the global readtable. To use LOL reader macros in your Lisp source files, you will have to add both let-over-lambda and named-readtables to your project dependencies, and the following line after your call to in-package, in every source file you wish to use LOL syntax:

(named-readtables:in-readtable lol:lol-syntax)