<div dir="ltr">My one desire (perhaps not completely substantiated) would be that the “list” portion of the syntax exist outside of these expressions as well. That is to say, if:<div><br></div><div>```</div><div>new Dict#{a: b, c: d }</div><div>```<br clear="all"><div><br></div><div>desugars to:</div><div><br></div><div><div>```</div><div>new Dict([[a,b], [c,d]])</div><div>```</div></div><div><br></div><div>Then I’d like/expect #{a: b, c: d} to also just desugar to [[a,b], [c,d]]. More than anything, I would just expect this to be the case if I ran into it in the wild. As such, perhaps one way to look at this is that what we actually want is a nice tuple syntax. Imagine if we had just a tuple syntax taht a->b desugars to [a,b]. Now, with no further changes, we get this “map syntax” for free:</div><div><br></div><div>```</div><div>new Map([a->b, (4+5)->d, null->7])</div><div>```</div><div><br></div><div>That looks pretty good to me, and introduces a new operator that behaves the same everywhere, and has minimal requirements to “new” collection classes. Additionally, I would enjoy returning these as well when referring to key value pairs:</div><div><br></div><div>```</div><div>return (a->b) // sugar for return [a,b]</div><div>```</div><div><br></div>-- <br><div class="gmail_signature">Francisco Tolmasky<br><a href="http://www.tolmasky.com" target="_blank">www.tolmasky.com</a><br><a href="mailto:tolmasky@gmail.com" target="_blank">tolmasky@gmail.com</a></div>
</div></div>