Quasis: assignable substitutions?

Mike Samuel mikesamuel at gmail.com
Thu Jun 16 16:56:26 PDT 2011


2011/6/16 Axel Rauschmayer <axel at rauschma.de>:
>> and redefines the SVE of ${=x.y} to be
>>
>>     function () { return arguments.length ? (x.y = arguments[0]) : x.y }
>>
>> so instead of passing substitution values, for read-only substitutions
>> (those without the = modifier) you get a thunk, and for writable
>> substitutions you get a function that returns the value when called
>> with 0 arguments or assigns the first parameter if passed one.
>
>
> Ah, nice. I would have handed in an array of substitutions, let the handler change an array element and then performed an assignment such as
>    x.y = substs[0].
>
> The above solution is better, because the desugaring is local.

It also allows for multiple evaluation of substitutions which might be
useful for looping constructs in the template use-case.


More information about the es-discuss mailing list