IIRC NaN is readonly, but you'd need to be able to guarantee the lexical scope 
between your function definition and the global object did have any shadowing :D

--Oliver

On Nov 28, 2012, at 1:32 PM, Axel Rauschmayer <a...@rauschma.de> wrote:

> 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 <oli...@apple.com> wrote:
> 
>> 
>> On Nov 28, 2012, at 12:25 PM, Waldemar Horwat <walde...@google.com> wrote:
>> 
>>> On Wed, Nov 28, 2012 at 5:39 AM, Marius Gundersen <gunder...@gmail.com> 
>>> wrote:
>>> On Wed, Nov 28, 2012 at 1:20 PM, Andreas Rossberg <rossb...@google.com> 
>>> 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
>>> es-discuss@mozilla.org
>>> https://mail.mozilla.org/listinfo/es-discuss
>> 
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss@mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
> 
> -- 
> Dr. Axel Rauschmayer
> a...@rauschma.de
> 
> home: rauschma.de
> twitter: twitter.com/rauschma
> blog: 2ality.com
> 

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to