Axel Rauschmayer wrote:
Would returning NaN be impure (apart from running the risk of it
having been changed to something different, globally)?
You can't say "apart from...", that's exactly the risk. It could be
replaced with a global getter that has effects.
Isolating a pure function to a sandbox or prepared global environment
saves this, but then the function's "pure" annotation can't be enough to
express what's required.
/be
On Nov 28, 2012, at 21:35 , Oliver Hunt <[email protected]
<mailto:[email protected]>> wrote:
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;
}
_______________________________________________
es-discuss mailing list
[email protected] <mailto:[email protected]>
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected] <mailto:[email protected]>
https://mail.mozilla.org/listinfo/es-discuss
--
Dr. Axel Rauschmayer
[email protected] <mailto:[email protected]>
home: rauschma.de <http://rauschma.de>
twitter: twitter.com/rauschma <http://twitter.com/rauschma>
blog: 2ality.com <http://2ality.com>
_______________________________________________
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