<div style="font-family: arial, helvetica, sans-serif; font-size: 10pt"><div class="gmail_quote">On Wed, Nov 28, 2012 at 5:39 AM, Marius Gundersen <span dir="ltr"><<a href="mailto:gundersen@gmail.com" target="_blank">gundersen@gmail.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_extra"><div class="gmail_quote"><div>On Wed, Nov 28, 2012 at 1:20 PM, Andreas Rossberg <span dir="ltr"><<a href="mailto:rossberg@google.com" target="_blank">rossberg@google.com</a>></span> wrote:<br>
</div><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Second, due to the extremely impure nature of JavaScript, there aren't<br>
many useful pure functions you could even write. For example, your<br>
'sum' function is not pure, because the implicit conversions required<br>
by + can cause arbitrary side effects.<br></blockquote></div><div><br>Functions passed to the array methods map, reduce, filter, etc would be good candidates for pure/side-effect-free functions. These functions shouldn't alter any state; they should only return a new value based on the parameter they were sent.<br>
</div></div></div></blockquote><div><br>You haven't addressed Andreas's point: Almost any function you write is nonpure, including your sum example. As a fun exercise, go ahead and write a pure version of your sum example.<br>
<br>    Waldemar<br><br></div></div></div>