- You like Lisp, and want to learn even more about its rhyming scheme. Subjectively, a Lisp with fexprs feels even more Lisp than Lisp.
- You are dissatisfied with either the need for GENSYM, or for a hygienic macro system's complexity. Fexprs require neither.
- You think that everything in a PL should be first-class.
- You'd like to see how a single concept can replace both functions and hygienic macros.
- You want to implement a PL with as little code as possible (since fexprs give you the power of both functions and macros, you don't need to implement a macro system to bootstrap your PL.)
- You like to get your mind blown.
- You like hygienic macros, and want to understand better how they work. Even if you don't use fexprs, understanding them can show you how hygienic macros are really a special case formulation of fexprs.
- You think that PLs should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.
Wednesday, March 21, 2012
"should I really take the time to learn fexprs?"
You should take the time to learn fexprs if you answer yes to any of these questions: