For consistency, the name for this function would be `isSuperset(of:)`, and it would be equally interesting to have `isStrictSuperset(of:)`, `isSubset(of:)`, `isStrictSubset(of:)` and `isDisjoint(with:)`--all currently available for types that conform to `SetAlgebra`.
On Tue, Aug 8, 2017 at 9:40 PM, Yuta Koshizawa via swift-evolution < [email protected]> wrote: > Hi, > > Recently I needed to implement `contains` methods to check if a range > contains another range. I think those are basic operations and suitable for > the standard library. > > Although it may seem easy to implement such `contains` methods whenever we > need them, their precise specifications are too complicated to do so. > > e.g. > > let a: ClosedRange<Int> = 2...7 > a.contains(3...5) // `true` > a.contains(3...7) // also `true` > a.contains(3..<8) // still `true` because all values contained in `3..<8` > are also in `a` > a.contains(3..<9) // `false` > > let b: ClosedRange<Float> = 2...7 > b.contains(3...5) // `true` > b.contains(3...7) // `true` > b.contains(3..<8) // `false` because { x | 7.0 < x < 8.0 } is not > contained in `a` > > let c: Range<Float> = 2..<7 > c.contains(3...5) // `true` > c.contains(3..<7) // `true` > c.contains(3...7) // `false` because 7.0 is not contained in `a` > > My experimental implementation is here: > https://github.com/koher/range-contains > (Currently does not support one-sided ranges) > > What are your thoughts about them? > > -- > Yuta > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
