Monday, February 7, 2011

Studying F# : Discriminated Union #2

In phosphorescence: Studying F# : Discriminated Union, I mentioned that "Discriminated Union" in F# is similar to Java's enum. Java's enum can define any members(method, property and so on). Of course, "Discriminated Union" can do too.

type Suit =
    | Club
    | Diamond
    | Heart
    | Spade
    member this.ToLatin() =
        match this with
        | Club -> "Wand"
        | Diamond -> "Coin"
        | Heart -> "Cup"
        | Spade -> "Sword"

Let's check on F# interactive.
> let card = Club;;

val card : Suit = Club

> card.ToLatin()

val it : string = "Wand"

> let card2 = Heart

val card2 : Suit = Heart

> card2.ToLatin()

val it : string = "Cup"

No comments:

Post a Comment