<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">I would love to have a way to write function calls infix. That may cover your use case as well. That is (strawman syntax):<div><br></div><div>    arg1 #func arg2</div><div><br></div><div>would be syntactic sugar for</div><div><br></div><div>   func(arg1, arg2)<br><div><br></div><div>Advantages: more versatile, less grawlixy. Problem: would make much more sense with multiple dispatch (dynamic dispatch over the arguments), but that doesn’t seem to be in the cards for JavaScript.</div><div><br><div><div>On 30 Oct 2013, at 4:01 , Tristan Zajonc <<a href="mailto:tristan@senseplatform.com">tristan@senseplatform.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div>Following up on the discussion about operator overloading, what are viable options for introducing novel infix operators or a class of extended/prefixed operators?  </div><div><br></div><div>For motivation, I along with some others have implemented a MATLAB/R like environment for JS. We've written a compile-to-js language that supports, among other things, operator overloading and prefixed operators,  However we'd much prefer to follow ES6/7 and ideally avoid the need for a compile-to-js language entirely, at least in the future.  Without going into the details, prefixed operators are useful for defining objectwise and elementwise operations on matrices, which is a core type in technical computing (see Julia, MATLAB, Mata, Python PEP 225).</div>
<div><br></div><div>Assuming JS allowed prefixed operators:<br></div><div><br></div><div>1. What would be the most likely syntax?  As a reference, Julia and Matlab use dots, a .+ b.  Stata's Mata languages uses colons, a :+ b.  PEP225 proposes tildle a ~+ b.  R uses %infix% but this is widely viewed as a bad choice.  The technical community would prefer dots.  I know these prefixes all having meanings alone, but does .op introduce any ambiguity?  Are there other lightweight options?</div>
<div><br></div><div>2. Is there a preferred class literal syntax?  I believe the proposed value object syntax would be perfect if extended to classes as well.</div><div><br></div><div>3. Can this be done prior to macros?  It may be my narrow matrix centered view, but I do not believe there's a compelling need for arbitrary infix operators in technical computing if it introduces additional difficulties.</div>
<div><br></div><div>With ES6 and these operators I believe JS/NodeJS could easily take over the technical and statistical computing domains.<br></div><div><br></div><div>Tristan</div></div></blockquote></div><br><div>
<div><div style="margin: 0px; ">-- </div><div style="margin: 0px; ">Dr. Axel Rauschmayer</div><div style="margin: 0px; "><a href="mailto:axel@rauschma.de">axel@rauschma.de</a></div><div style="margin: 0px; "><br></div><div style="margin: 0px; "><div style="margin: 0px; ">home: <a href="http://rauschma.de/">rauschma.de</a></div>twitter: <a href="http://twitter.com/rauschma">twitter.com/rauschma</a></div><div style="margin: 0px; ">blog: <a href="http://2ality.com/">2ality.com</a></div></div><div><br></div><br class="Apple-interchange-newline">
</div>
<br></div></div></body></html>