Le 28/11/2012 21:35, Oliver Hunt a écrit :
On Nov 28, 2012, at 12:25 PM, Waldemar Horwat <[email protected]
<mailto:[email protected]>> wrote:
On Wed, Nov 28, 2012 at 5:39 AM, Marius Gundersen
<[email protected] <mailto:[email protected]>> wrote:
On Wed, Nov 28, 2012 at 1:20 PM, Andreas Rossberg
<[email protected] <mailto:[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;
}
I don't even... Reading this makes me understand why "return a+b" didn't
work and... oh well... JavaScript is quite a language...
David
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss