Re: [swift-evolution] [Draft] Rename Sequence.elementsEqual

2017-10-18 Thread Martin R via swift-evolution
> On 18. Oct 2017, at 13:55, Xiaodi Wu wrote: > > On Wed, Oct 18, 2017 at 03:05 Martin R wrote: > > > > On 17. Oct 2017, at 23:22, Michael Ilseman via swift-evolution > > wrote: > > > > > > > >> On Oct 17, 2017, at 1:36 PM, Benjamin G > >> wrote: > >> > >> > >> > >> On Tue, Oct 17, 2017

Re: [swift-evolution] [Draft] Rename Sequence.elementsEqual

2017-10-18 Thread Martin R via swift-evolution
> On 17. Oct 2017, at 23:22, Michael Ilseman via swift-evolution > wrote: > > > >> On Oct 17, 2017, at 1:36 PM, Benjamin G wrote: >> >> >> >> On Tue, Oct 17, 2017 at 10:25 PM, Michael Ilseman wrote: >> >> >>> On Oct 17, 2017, at 12:54 PM, Benjamin G >>> wrote: >>> >>> Thanks for th

Re: [swift-evolution] [Draft] Rename Sequence.elementsEqual

2017-10-17 Thread Martin R via swift-evolution
> On 17. Oct 2017, at 09:48, Jonathan Hull via swift-evolution > wrote: > > >> On Oct 17, 2017, at 12:04 AM, Gwendal Roué via swift-evolution >> wrote: >> Modeling is, by definition, imperfect. The question is, what imperfect model is most useful _to Swift_. The idea is that con

Re: [swift-evolution] Implicit truncation

2017-05-23 Thread Martin R via swift-evolution
> On 24. May 2017, at 04:34, Xiaodi Wu via swift-evolution > wrote: > > Yes. First, the Foundation initializer converting from NSNumber has the same > behavior: > > ``` > import Foundation > let x = Int(42.5 as NSNumber) // x == 42 > ``` As of SE-170 (which is implemented in Swift 4), the la

[swift-evolution] [pitch] Add a NativeType type alias to Int/UInt

2017-04-21 Thread Martin R via swift-evolution
Some algorithms depend on the size of the `(U)Int` type. A typical example are hashing functions, as in Hashing.swift (https://github.com/apple/swift/blob/master/stdlib/public/core/Hashing.swift#L142) func _mixInt(_ value: Int) -> Int { #if arch(i386) || arch(arm) return Int(_mixIn

Re: [swift-evolution] SE-0170: NSNumber bridging and Numeric types

2017-04-20 Thread Martin R via swift-evolution
So is it correct to say that for all types T which NSNumber can hold (Double, Float, Int, UInt, ... ) T(exactly: someNSNumber) will succeed if and only if NSNumber(value: T(truncating: someNSNumber)) == someNSNumber holds? > On 20. Apr 2017, at 18:10, Philippe Hausler wrote: >

Re: [swift-evolution] SE-0170: NSNumber bridging and Numeric types

2017-04-19 Thread Martin R via swift-evolution
> On 19. Apr 2017, at 01:48, Xiaodi Wu wrote: > > So, as I understand it, `Float.init(exactly: Double.pi) == nil`. I would > expect NSNumber to behave similarly (a notion with which Martin disagrees, I > guess). I don't see a test that shows whether NSNumber behaves or does not > behave in tha

Re: [swift-evolution] SE-0170: NSNumber bridging and Numeric types

2017-04-16 Thread Martin R via swift-evolution
uble or Float or is actually a NSDecimalNumber. Therefore is seems impractical to me if Float(exactly: someNumber) failed if precision were lost during the conversion. Regards, Martin > >> >> Regards, Martin >> >>> On 14. Apr 2017, at 23:23, Philippe Hausler >&

Re: [swift-evolution] SE-0170: NSNumber bridging and Numeric types

2017-04-14 Thread Martin R via swift-evolution
es. Regards, Martin > On 14. Apr 2017, at 23:23, Philippe Hausler wrote: > >> >> On Apr 14, 2017, at 2:11 PM, Martin R via swift-evolution >> mailto:swift-evolution@swift.org>> wrote: >> >> Apologies if I am overlooking something, but it seems to me

Re: [swift-evolution] SE-0170: NSNumber bridging and Numeric types

2017-04-14 Thread Martin R via swift-evolution
Apologies if I am overlooking something, but it seems to me that the proposal does not clearly define the behavior of the "exact" conversions between integer and floating point values. Does Int(exactly: NSNumber(value: 12.34)) fail because Int cannot represent the number exactly? Or are flo

Re: [swift-evolution] !? operator for ternary conditional unwrapping

2017-02-08 Thread Martin R via swift-evolution
Isn't that exactly what the nil-coalescing operator ?? does? func query(name: String?) -> String { return "{ param: \(name ?? "null") }" } If you use the JSONSerialization class from the Foundation library then `nil` is bridged to `NSNull` and translated to "null" automatically (