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

Reply via email to