String identity template tag

Isiah Meadows isiahmeadows at gmail.com
Thu Dec 13 01:34:09 UTC 2018


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 <erights at gmail.com> wrote:

>
> On Wed, Dec 12, 2018 at 5:24 PM Isiah Meadows <isiahmeadows at gmail.com>
> 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 <erights at gmail.com> 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 <isiahmeadows at gmail.com>
>>> 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
>>>> contact at isiahmeadows.com
>>>> www.isiahmeadows.com
>>>>
>>>> On Wed, Dec 12, 2018 at 1:13 AM Michael Luder-Rosefield
>>>> <rosyatrandom at gmail.com> 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 <isiahmeadows at gmail.com>
>>>> 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
>>>> >> contact at isiahmeadows.com
>>>> >> www.isiahmeadows.com
>>>> >>
>>>> >> On Tue, Dec 11, 2018 at 5:41 AM T.J. Crowder
>>>> >> <tj.crowder at farsightsoftware.com> wrote:
>>>> >> >
>>>> >> > On Mon, Dec 10, 2018 at 7:08 PM Isiah Meadows
>>>> >> > <isiahmeadows at gmail.com> 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
>>>> >> es-discuss at mozilla.org
>>>> >> https://mail.mozilla.org/listinfo/es-discuss
>>>> _______________________________________________
>>>> es-discuss mailing list
>>>> es-discuss at mozilla.org
>>>> https://mail.mozilla.org/listinfo/es-discuss
>>>>
>>>
>>>
>>> --
>>>   Cheers,
>>>   --MarkM
>>>
>>
>
> --
>   Cheers,
>   --MarkM
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20181212/31d4ac7c/attachment-0001.html>


More information about the es-discuss mailing list