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:
  • 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.

1 comment:

Jason said...

Do you have any opinion about the fexprs in newLISP? The obvious advantage of newLISP over more recent implementations of fexprs is that it has a very nice built-in library.