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