3 ms·
For non-hygienic macros, it's essentially the variable capture problem. For hygienic macros, I don't know of a good argument that they are inherently more diff
by ssp 16y ago
For non-hygienic macros, it's essentially the variable capture problem.
For hygienic macros, I don't know of a good argument that they are inherently more difficult to understand separately from their invocation than a function.
(I'm not personally arguing against macros - or global variables for that matter - just trying to state the argument).
- cypherpunks 16y agoI think it should be obvious that you use programming constructs only when difficulty of understanding it is less than the difficulty of understanding code without it (over the whole program). This applies to functions, classes, macros, frameworks etc. Full macros (like in CL where they are just functions that don't evaluate their arguments) give the programmer same power as compiler writer or programming language designer. ps. To really get benefit from Lisp macros, you would need to standardize code walker. Without code walker, macros can't reach their full potential.
- dataangel 16y agoWhat is code walker?