<div dir="ltr"><div dir="ltr">Terse ```add``` code ```const add = a => eval(a.join`+`)`. </div><div dir="ltr"><br></div><div dir="ltr">Would fix JavaScript floating point number precision issues and implement ```BigDecimal``` first.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, May 11, 2019 at 11:21 PM 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">(Percolating a comment I made in a thread earlier.)<br>
<br>
# Math.add<br>
<br>
```<br>
Math.add = function (a, b) {<br>
  return a + b;<br>
};<br>
```<br>
<br>
A why:<br>
<br>
With functional-style programming becoming more and more common with<br>
the advent of ES5 Array methods, the terse way to find the sum of<br>
items in an array can become even more terse with the introduction of<br>
`Math.add`:<br>
<br>
```<br>
const sum = array.reduce((a, b) => a + b);<br>
<br>
// becomes:<br>
const sum = array.reduce(Math.add);<br>
```<br>
<br>
# Math.sub<br>
<br>
```<br>
Math.sub = function (a, b) {<br>
  return a - b;<br>
};<br>
```<br>
<br>
A [not-so-strong] why:<br>
<br>
It's a common "LOL WTF JavaScript" refrain to point out that<br>
attempting to sort an array of numbers by using the default<br>
`Array.prototype.sort` results in an unexpected sort order unless a<br>
custom comparator is used. The presence of an out-of-the-box<br>
`Math.sub` could make the canonical "proper way to sort numbers" a bit<br>
terser:<br>
<br>
```<br>
array.sort((a, b) => a - b);<br>
<br>
// becomes:<br>
array.sort(Math.sub);<br>
```<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>