Would returning NaN be impure (apart from running the risk of it having been changed to something different, globally)?
On Nov 28, 2012, at 21:35 , Oliver Hunt <[email protected]> wrote: > > 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 -- Dr. Axel Rauschmayer [email protected] home: rauschma.de twitter: twitter.com/rauschma blog: 2ality.com
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

