Hacker News new | ask | show | jobs
by typedweb 4053 days ago
A lisp macro is a code transformer run by the compiler using the full features of the language to generate code.

Macros allow for the arbitrary evaulation of it's arguments (rather than the standard left to right order before a function call), allowing you to do syntactic extensions without the added boilerplate that functional languages can require.

Essentially, each macro allows you to define a mini-language that is parsed by the compiler that returns code that is then compiled. It takes a while to groc, but once you do you can never really go back.