Dynamic binding without special in Common Lisp
In Common Lisp, dynamic bindings and lexical bindings live in the same namespace. They don’t have to.
In Common Lisp, dynamic bindings and lexical bindings live in the same namespace. They don’t have to.
The first rule of understanding closures is that you do not talk about closures. The second rule of understanding closures in Common Lisp is that you do not talk about closures. These are all the rules.
I often find myself wanting a simple case-like macro where the keys are regular expressions. regex-case is an attempt at this.
What follows is an opinion. Do not under any circumstances read it. Other opinions are available (but wrong).
There are two laws.
slog is a simple logging framework for Common Lisp based on the observation that conditions can represent log events.
Metatronic macros are a simple hack which makes it a little easier to write less unhygienic macros in Common Lisp.
I’ve written two pattern matchers for Common Lisp:
destructuring-match, or dsm, is a case-style construct which can match destructuring-bind-style lambda lists with a couple of extensions;spam, the simple pattern matcher, does not bind variables but lets you match based on assertions about, for instance, the contents of lists.Both dsm and spam strive to be simple and correct.
Yet another description of macroexpansion in Common Lisp. There is nothing particuarly new here and it partly duplicates some previous articles: I just wanted to rescue the text.
Here’s a simple example of dealing with a naturally circular function definition.