Alaric Snell-Pym wrote: > * Low-level vs. High-level * > > A low-level macro is defined as some Scheme code that's handed the > macro call expression, as an actual s-expression (perhaps with some > magic around the symbols to deal with hygiene issues). It literally is > a function from Scheme source code for a macro reference to Scheme > source code of what the macro should be expanded to. > > It's low-level because you have to grovel around the input s-expr with > car and cdr and so on, then cons up the expansion (quasiquotes help a > lot here). > > A high-level macro, OTOH, has some specialist mini-language that does > pattern-matching for you. Like syntax-rules, you specify input > patterns (with variables in) and for each one, an output pattern or > (as a more intermediate level) Scheme source code to assemble the > expansion.
OK, so a general purpose language with higher-order first-class procedures, generic arithmetic, first-class continuations, etc. is "low-level", whereas a domain specific first-order term rewriting system in which anything useful must be written in CPS (a kind of register machine model) is "high-level". Perfect. David _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
