This is very similar to Haskell's guard I tried to pitch before, but the 
community seem to not want it on Swift.

let a | case1 = "case 1"
      | case2 = "case 2"
      | otherwise = "default"

Where otherwise is simply defined as otherwise = True that catches everything 
(similar to switch default)

On behalf of the OP's:

var description: String {
    case .Hearts:
        return "♥️"
    case .Spades:
        return "♠️"
    case .Diamonds:
        return "♦️"
    case .Clubs:
        return "♣️"
}

can be:

var description: String {
    return | .Hearts = "♥️"
           | .Spades = "♠️"
           | .Diamonds = "♦️"
           | .Clubs = "♣️"
}

On 20 May 2016, 7:15 PM +0800, Charles Constant via swift-evolution 
<[email protected]>, wrote:
> I wrote some code tonight to experiment with this kind of thing. I apologize 
> if it's off-topic for the thread, but it might be useful to others who want 
> to experiment. 
> 
> 
> 
> //: Playground - noun: a place where people can play
> 
> import Cocoa
> 
> infix operator • { precedence 180 }
> infix operator → { associativity left precedence 70 }
> infix operator … { associativity right precedence 60 }
> 
> func → <T>( lhs: Bool, rhs: T ) -> T? {
> return lhs ? rhs : nil
> }
> 
> func … <T>( lhs:T?, rhs:T ) -> T {
> return lhs != nil ? lhs! : rhs
> }
> 
> func depends<I,O>( dep:I, _ closure: (I)->(O) ) -> O {
> return closure( dep )
> }
> 
> func • <I,O>( lhs: I, rhs: (I)->(O) ) -> O {
> return depends( lhs, rhs )
> }
> 
> /* Example using "depends" */
> 
> let
> str:String,
> i = 7
> 
> str = depends( i ){
> $0==2 → "two" …
> $0==3 → "three" …
> $0==4 → "four" …
> "other"
> }
> 
> /* Example using "•" operator as "depends" */
> 
> enum People { case Kurtz, Popescu, Lime, Martins }
> enum Order { case First, Second, Third, Unknown }
> 
> let
> order:Order,
> person:People = .Lime
> 
> order = person • {
> $0 == .Kurtz → .First …
> $0 == .Popescu → .Second …
> $0 == .Lime → .Third …
> .Unknown
> }
> 
> 
> I also have some trepidation about posting it here, because it might have 
> bugs. I wans't sure what "precedence" and "associativity" should be, for 
> example. But it does make it more convenient to test alternative characters 
> for operators, etc.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> On Sat, Apr 9, 2016 at 12:05 AM, Vladimir.S via swift-evolution 
> <[email protected] <mailto:[email protected]>> wrote:
> 
> On 09.04.2016 9:31, Brent Royal-Gordon wrote:
> This design is still very much under development—it hasn't even been 
> reviewed, let alone added to the language. Here's the draft 
> proposal:<https://github.com/jtbandes/swift-evolution/blob/case-enumerable/proposals/0000-derived-collection-of-enum-cases.md
>  
> <https://github.com/jtbandes/swift-evolution/blob/case-enumerable/proposals/0000-derived-collection-of-enum-cases.md>>
> 
> I'm not saying that this will necessarily be a solution that ends up being 
> accepted—I'm merely saying that yes, it's something people are thinking about 
> and designing; it's just been inactive for a few weeks.
> 
> Oh, I see. Thank you for letting know. Just missed "you would be able" in 
> your previous message, did read it as "you are able", so was trying to find 
> this in current Swift version. OK, glad to know that most likely we'll have 
> improvements in enums eterations for Swift 3.0.
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> _______________________________________________
> 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

Reply via email to