It is a matter of definition and taste, but I don't think it is useful to think
of these as macros. I expect macros to extend the base language as if adding
new special forms, where these special forms are stylistically similar to the
existing special forms. For example
myfor (x of xs) {
print(x);
} between {
print(',');
}
or
expr ||| expr
For quasi-literals, first, I agree that "quasi" anything is not a good choice
and that "string template" is better. The suggested analogy to other things
called templates seems more useful. But best I think would be terminology that
suggests that this is a generic DSL embedding mechanism, where you can escape
back into the host language from holes in the guest language. The thing to the
left of the first backquote, more than anything else names the guest language
being embedded. (FWIW, in E we call in It the quasiparser ;).)
Cheers
--MarkM
On Aug 4, 2012, at 10:41 AM, John J Barton <[email protected]> wrote:
>
>
> On Fri, Aug 3, 2012 at 10:30 PM, Axel Rauschmayer <[email protected]> wrote:
> Ah, OK. Spitballing: A synonym of tag then, maybe? Alas, label is out. If the
> term was, say, “mark” then one could conceivably say “mark function” instead
> of handler.
>
> Aren't these macros?
>
> tag`literal${substitution}literal`
>
> macro`literal${substitution}literal`
>
> The default or passthru macro applies when the developer does not supply a
> macro.
>
> Or if you prefer
>
> macro_function`a macro with ${substitution} here`
>
> Then we don't have to spend several years explaining how template strings are
> templates but not <template>s and aren't string templates because they take
> non-string substitutions.
>
> (IMO oxymoronic quasi-literal is embarrassing).
>
> jjb
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss