Some languages are too consistent about keeping their names short. Arc and Wart call their macro-defining operators mac
instead of defmacro
or define-macro
.
I understand how a designer could see mac
as an important operator. If you think of macros as a central, distinctive feature of your language, and if you use quite a few of them to bootstrap your standard library, they feel important enough to deserve a short name.
mac
does almost nothing for the length of programs, though. Macro definitions, however fundamental, aren't common enough for it to matter. define-macro
is short enough. I prefer defmacro
, but only because it follows a naming convention that makes other, more common names shorter; it's not common enough itself to justify an irregularly short name.
Save the aggressive abbreviation for common operations like make-hash-table
. Giving that a one-word name (or even {}
) makes more difference.