# Posts tagged programming

## A case-like macro for regular expressions

::

I often find myself wanting a simple case-like macro where the keys are regular expressions. regex-case is an attempt at this.

## Package-local nicknames

::

What follows is an opinion. Do not under any circumstances read it. Other opinions are available (but wrong).

## Bradshaw’s laws

::

There are two laws.

## Simple logging in Common Lisp

::

slog is a simple logging framework for Common Lisp based on the observation that conditions can represent log events.

## Metatronic macros

::

Metatronic macros are a simple hack which makes it a little easier to write less unhygienic macros in Common Lisp.

## Two simple pattern matchers for 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.

## Macroexpansion in Common Lisp

::

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.

## Avoiding circularity: a simple example

::

Here’s a simple example of dealing with a naturally circular function definition.

## Two understandable deficiencies in Common Lisp

::

Common Lisp is, I think, a remarkably pleasant language, despite what some people like to say. Here are two small deficiencies, both of which are understandable in terms of the history of CL, and both of which ultimately hurt naïve programmers working in CL.