On 16/10/2017 23:11, Matthias Felleisen wrote:

Lisp macros are easier than Racket’s in the same way that it
was so much easier to write procedures in ASM than in Pascal.

Having used both, I fully agree, but I also wonder if it is possible to restore *some* of the simplicity of Lisp macros in Racket.

A major point for me is that in Lisp, I use the same language and library functions in macros and in plain data-munging functions. In Racket, I have to remember a completely different set of library functions for working with syntax objects. I write much fewer macros than plain functions, so every time I work on a macro, I end up looking up much of the basic syntax-object manipulators again.

A related point is the extensive use of pattern matching and pattern variables in syntax-parse. It's not hard to see their advantages, but for someone who uses them twice a year, it's a cognitive burden rather than a helpful tool.

I have played with the idea of writing an interface layer that lets me apply plain list manipulations to the datum layer of syntax objects. I never got around to work on this seriously, both because of the 24-hour-per-day limit that I cannot seem to get rid of, and because I expect to get stuck in some subtleties of the macro system as so often before.

Does this idea sound doable to the Racket macro masters? It would allow people to trade efficiency in macro writing for a more gentle learning curve, as opposed to syntax-rule that offers simplicity in exchange for restrictions in what can be done.

Konrad.

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to