« Return to Thread: Spawn proposal strawman

Re: Spawn proposal strawman

by Brendan Eich-3 :: Rate this Message:

Reply to Author | View in Thread

On May 9, 2009, at 2:32 PM, David-Sarah Hopwood wrote:

> I would mildly prefer to use an S-expression-style AST, like this:
>
>  ["||",
>    ["||",
>      ["Id", "X"],
>      ["Id", "Y"]],
>    ["Id", "Z"]]
>
> which is more concise, does not lose any useful information, and
> is easier to remember. This is the same style as used in JsonML
> (www.jsonml.org).

Not bad. I will give it a try in the prototype I've started. Thanks  
for the pointer.


> It so happens that this is *semantically* equivalent to "a || (b ||  
> c)",
> but that is not an equivalence of abstract syntax.

I know, that's my point. The connectives can be parsed and evaluated  
either way, but the short-circuiting seems to favor right  
associativity, on one hand.

On the other hand, I'm defying a long tradition here. The precedent  
going back to C (K&R before ANSI got in the loop; ignore Algol and  
BCPL precedents ;-) uses left associativity, and ES1 followed suit.

So this is not a big deal, and it would be quixotic of me to make too  
much of it :-). I wanted to raise it as a potential issue. It's a  
practical issue in SpiderMonkey since we do right-associate || and &&  
in the internal syntax tree.

/be
_______________________________________________
es-discuss mailing list
es-discuss@...
https://mail.mozilla.org/listinfo/es-discuss

 « Return to Thread: Spawn proposal strawman