-
Notifications
You must be signed in to change notification settings - Fork 0
/
types.fsx
14 lines (13 loc) · 820 Bytes
/
types.fsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
type EmailAddress = EmailAddress of string
type TelephoneNumber = TelephoneNumber of string
type Contact =
EmailAddressOnly of EmailAddress
| TelephoneNumberOnly of TelephoneNumber
| EmailAddressAndTelephoneNumber of EmailAddress * TelephoneNumber
type Ticket = {Number: int; Description: string; Contact: Contact }
let telephone = "Test" |> TelephoneNumber
let email = "Test" |> EmailAddress
let tickets = [{ Number = 10; Description = "It doesn't work"; Contact = telephone |> Contact.TelephoneNumberOnly };
{ Number = 11; Description = "It doesn't work"; Contact = email |> Contact.EmailAddressOnly };
{ Number = 12; Description = "It doesn't work"; Contact = (email, telephone) |> EmailAddressAndTelephoneNumber }]
tickets |> Seq.iter(fun ticket -> printfn "%A" ticket )