Macro-expanded lisp works surprisingly well as an intermediate representation for some tasks.
Today, I was able to enumerate all the bound variables pretty straightforwardly, because elisp only has four ways of introducing bindings!
(let, let*, lambda and condition-case)
miniblog.
Related Posts
Rust macro errors are significantly improving:
@friend It seems like people find Zig comptime easier to reason about, hence the interest in introducing it to other languages.
That seems worth something. I still prefer Lisp/Clojure style macros over safer Scheme/Rust macros. Lisp macro implementations are closer to typical code.
I've been learning some CMake, and it's a weird language. "ON" is used for booleans, it puts code in .txt files, but it still has a lispy macro system.
I suspect the vast majority of people (including me) learn CMake from a large preexisting build. That will bias impressions.
