<div dir="ltr">I've always been partial to operators merely being functions with infix/whatever sugar; having operators without there being a corresponding function seems deeply weird.<br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">--------------------------<br>Dammit babies, you've got to be kind.</div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 7 May 2019 at 05:58, Ates Goral <<a href="mailto:ates@magnetiq.com">ates@magnetiq.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This topic has been discussed a long time ago and has stalled on<br>
discussions of a standard library.<br>
<br>
Coming back to the idea of adding some basic math operations directly<br>
on Math, there could be value in adding at least the following (from<br>
Isiah Meadows's post):<br>
<br>
> - `a + b` -> `Math.add` -> `:+`<br>
> - `a - b` -> `Math.sub` -> `:-`<br>
> - `a * b` -> `Math.mul` -> `:*` (different from `imul`)<br>
> - `a / b` -> `Math.div` -> `:/`<br>
<br>
`Math.add`: Among potentially other things, this could be useful for<br>
an out-of-the-box, terse way to add up items in an array. So, instead<br>
of:<br>
<br>
```<br>
array.reduce((sum, item) => sum + item);<br>
```<br>
<br>
Items could be added up with:<br>
<br>
```<br>
array.reduce(Math.add);<br>
```<br>
<br>
`Math.sub`: Among potentially other things, this could be useful for<br>
sorting numbers without having to define a custom comparator (i.e. almost as<br>
an out-of-the-box riposte to the "JavaScript WTF" refrain of<br>
lexicographically sorting numbers by using the default sort<br>
implementation.) So, instead of:<br>
<br>
```<br>
array.sort((first, second) => first - second);<br>
```<br>
<br>
Numbers could be sorted with:<br>
<br>
```<br>
array.sort(Math.sub);<br>
```<br>
<br>
`Math.mul` and `Math.div`: I don't have a compelling use case in mind,<br>
but I'd just throw these in for good measure / symmetry.<br>
<br>
Ates<br>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div>