To me, `String.tag` seems more descriptive of the syntactic location (the template *tag*) than the semantics it carries.
----- Isiah Meadows [email protected] www.isiahmeadows.com On Thu, Dec 13, 2018 at 2:53 AM Andrea Giammarchi <[email protected]> wrote: > > I agree with Mark, and I wonder why `String.tag` is not the obvious choice > here, since every interpolation is also coerced as String > > On Thu, Dec 13, 2018 at 9:34 AM Isiah Meadows <[email protected]> wrote: >> >> I mean equivalence to untagged behavior, if that helps. >> >> FWIW, as stated previously, I'm not married to the name. >> On Wed, Dec 12, 2018 at 20:31 Mark Miller <[email protected]> wrote: >>> >>> >>> On Wed, Dec 12, 2018 at 5:24 PM Isiah Meadows <[email protected]> >>> wrote: >>>> >>>> The template is being expanded as if the template itself is untagged. >>> >>> >>> Does this mean that you describe what tagged templates do, or what untagged >>> templates do, as "expanding" something? If so, what is the intuition behind >>> that prior usage of "expand"? >>> >>> >>>> >>>> The point of this is a template tag that just does the default untagged >>>> behavior of coercing all expressions to strings and joining the whole >>>> thing together. >>> >>> >>> I certainly agree that the name should suggest equivalence to the default >>> untagged behavior. I just never would have thought to describe that >>> behavior as "expanding" something. What is it expanded into? >>> >>> >>>> >>>> On Wed, Dec 12, 2018 at 20:21 Mark Miller <[email protected]> wrote: >>>>> >>>>> What is the intuition behind "expand"? What is being expanded, and what >>>>> is it expanding into? >>>>> >>>>> >>>>> >>>>> On Tue, Dec 11, 2018 at 10:59 PM Isiah Meadows <[email protected]> >>>>> wrote: >>>>>> >>>>>> Those names a little too generic for my liking here. What about >>>>>> `String.expand(template, ...params)`? >>>>>> >>>>>> And also, let's not try to bake a traditional template engine into the >>>>>> JS spec - syntactic template strings already work well enough. >>>>>> >>>>>> ----- >>>>>> >>>>>> Isiah Meadows >>>>>> [email protected] >>>>>> www.isiahmeadows.com >>>>>> >>>>>> On Wed, Dec 12, 2018 at 1:13 AM Michael Luder-Rosefield >>>>>> <[email protected]> wrote: >>>>>> > >>>>>> > Why not String.tag or .tagged? >>>>>> > >>>>>> > While we're at it, is there any good reason not to have something like >>>>>> > this: >>>>>> > >>>>>> > ``` >>>>>> > String.template = (template : String, >>>>>> > taggerFn=String.identity/tag/tagged : Function) => (keys : Array | >>>>>> > Object) => taggerFn(template, (keys is Array) ? ...keys : keys) >>>>>> > // apologies for pseudo-semi-functional code >>>>>> > // having keys be an object allows template to be filled by key name >>>>>> > rather than just index >>>>>> > ``` >>>>>> > This would make templates closer to the traditional usage, where the >>>>>> > template comes first and is later passed values to be filled in with. >>>>>> > Having the taggerFn as an argument allows for things like Isiah's >>>>>> > escape-then-apply tagging examples. >>>>>> > >>>>>> > >>>>>> > On Wed, 12 Dec 2018 at 12:51 Isiah Meadows <[email protected]> >>>>>> > wrote: >>>>>> >> >>>>>> >> I'm not married to `identity`, and I agree the name is probably not >>>>>> >> ideal. I'm more concerned about functionality, though. >>>>>> >> >>>>>> >> ----- >>>>>> >> >>>>>> >> Isiah Meadows >>>>>> >> [email protected] >>>>>> >> www.isiahmeadows.com >>>>>> >> >>>>>> >> On Tue, Dec 11, 2018 at 5:41 AM T.J. Crowder >>>>>> >> <[email protected]> wrote: >>>>>> >> > >>>>>> >> > On Mon, Dec 10, 2018 at 7:08 PM Isiah Meadows >>>>>> >> > <[email protected]> wrote: >>>>>> >> > > >>>>>> >> > > It'd be *way* easier to construct simple template tags if there >>>>>> >> > > was a >>>>>> >> > > built-in identity tag >>>>>> >> > >>>>>> >> > Wholeheartedly agree, a couple of months ago I considered posting >>>>>> >> > something very similar, both for utility reasons and in hopes that >>>>>> >> > it would be an optimization target (being a standard operation). >>>>>> >> > >>>>>> >> > I find the name `identity` unilluminating, though, partially >>>>>> >> > because it's not quite the same meaning as the usual "identity" >>>>>> >> > function (`function identity(x) { return x; }`), though it's close. >>>>>> >> > `assemble`? >>>>>> >> > >>>>>> >> > -- T.J. Crowder >>>>>> >> _______________________________________________ >>>>>> >> 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 >>>>> >>>>> >>>>> >>>>> -- >>>>> Cheers, >>>>> --MarkM >>> >>> >>> >>> -- >>> Cheers, >>> --MarkM >> >> _______________________________________________ >> 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

