On Nov 28, 2012, at 12:25 PM, Waldemar Horwat <[email protected]> wrote:

> On Wed, Nov 28, 2012 at 5:39 AM, Marius Gundersen <[email protected]> wrote:
> On Wed, Nov 28, 2012 at 1:20 PM, Andreas Rossberg <[email protected]> wrote:
> Second, due to the extremely impure nature of JavaScript, there aren't
> many useful pure functions you could even write. For example, your
> 'sum' function is not pure, because the implicit conversions required
> by + can cause arbitrary side effects.
> 
> 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.
> 
> 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.
> 
>     Waldemar
Here you go:

function sum(a, b) {
   var undefined;
   switch (typeof a) {
   case "number":
   case "string":
       break;
   default:
       return +undefined;
   }
   switch (typeof b) {
   case "number":
   case "string":
       break;
   default:
       return +undefined;
   }
   return a + b;
} 



> 
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to