> Could the Scheme aspect of ES be strengthened? Tail recursion and let > statements seem like good additions. What about macros? Please!
I can speak to the topic of macros. The group has been open to the possibility of macros for a future version of ES, but not Edition 4. There are not very many languages with non-Lisp syntax that have come close to the power of Lisp/Scheme macros. CPP is distinctly *not* an inspiration! :) Dylan may provide some inspiration, and possibly Boo and Nemerle, though I have to learn more about these languages. JavaScript's complicated syntax makes macros very tricky. Contrary to the popular view that parsing is a wholly solved problem in CS, moving Lisp-style macros out of the domain of S-expressions and into token-based syntaxes is far trickier than you might first suspect. Hygiene is another important desideratum; scaling up C macros to be closer to the power of Lisp macros means dealing with the kinds of bugs that arise from name clashes[*]. Automatically hygienic systems generally "do the right thing" but there are a number of different algorithms to choose from, and as Brendan says the last word about hygiene has not been written (this is in fact the topic of my dissertation work). However, the theory doesn't have to be set in stone for the practice to proceed, and there are plenty of excellent, working Scheme implementations with fantastic macro systems that have been around for many years. There's lots of good inspiration to draw from. So the short answer to your question is: maybe, but not yet. :) Dave [*] These problems don't arise in standard C, but with e.g. the GCC extensions to CPP you can easily cause these kinds of name capture. _______________________________________________ Es4-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es4-discuss
