As a fellow functional programming aficionado, I'd like this very much, too. From lurking here, I think something like this is of low priority at the moment since it is and additive feature.
Especially head/tail matching looks very interesting. I also like the syntax you suggest here: > case let [first, next...]: > case let [first, last]: The binding should be more like "[let first, let last]" though, to be more like the tuple matching. For the above also: "case [let head, let tail...]". > On 18 Dec 2016, at 06:43, Mathew Sanders via swift-evolution > <[email protected]> wrote: > > I've just joined the list (hi!) so not sure if this has been discussed in the > past. > > Curious to hear if a future version of Swift might ever include some sort of > pattern-matching extended to Arrays. Maybe something like the following: > > let numbers: [Int] > > switch numbers { > case []: > // to match an empty array > > case [1, 2, 3]: > // to match array with specific values > > case [_, _, _]: > // to match array with 3 Ints > > case let [first, last]: > // match a 2 element array and bind first and last elements > > case let [first, next...]: > // to match array with at least one element > // bind first element, and bind other elements (could be empty) > // first: Int, next: [Int] > } > > I love the pattern matching on tuples, and would love to see if extend to > Arrays as well, but not sure if it fits with future goals for the language. > > > _______________________________________________ > 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
