+1 for trapping unless using &==.  In the case of ‘Float?’ we could also map to 
nil.

This is probably a more appropriate discussion for evolution though...


> On Oct 19, 2017, at 9:48 PM, Brent Royal-Gordon via swift-dev 
> <swift-dev@swift.org> wrote:
> 
>> On Oct 19, 2017, at 4:29 PM, Xiaodi Wu via swift-dev <swift-dev@swift.org 
>> <mailto:swift-dev@swift.org>> wrote:
>> 
>> D) Must floating-point IEEE-compliant equivalence be spelled `==`?
>> 
>> In my view, this is something open for debate. I see no reason why it cannot 
>> be migrated to `&==` if it were felt that `==` *must* be a full equivalence 
>> relation. I believe this is controversial, however.
> 
> I actually got partway through writing up a pitch on this yesterday, but my 
> opinion is that NaNs are so exceptional, and so prone to misuse, that we 
> ought to treat them like integer arithmetic overflows: trap when they're 
> detected, unless you use an `&` variant operator which indicates you know 
> what you're doing.
> 
> I strongly suspect that, in practice, most float-manipulating code is not 
> prepared to handle NaN and will not do anything sensible in its presence. For 
> example, Apple platforms use floating-point types for geometry, color 
> components, GPS locations, etc. Very little of this code will do anything 
> sensible in the presence of a NaN. Arguably, it'd be better to exclude them 
> through the type system, but I don't think that's a realistic possibility—we 
> would need to have done that in a more source-break-friendly era. But that 
> doesn't have to mean we're completely stuck.
> 
> -- 
> Brent Royal-Gordon
> Architechies
> 
> _______________________________________________
> swift-dev mailing list
> swift-dev@swift.org
> https://lists.swift.org/mailman/listinfo/swift-dev

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to