软糖

fp-ddd chapter 4

Domain Modeling Made Functional - Chapter 4

Understand F# types

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
type CheckNumber = CheckNumber of int
type CardNumber = CardNumber of string
type CardType =
Visa | Mastercard
type CreditCardInfo = {
CardType: CardType
CardNumber: CardNumber
}
// -------
type PaymentMethod =
| Cash
| Check of CheckNumber
| Card of CreditCardInfo
type PaymentAmount = PaymentAmount of decimal
type Currency = EUR | USD
type Payment = {
Amount: PaymentAmount
Currency: Currency
Method: PaymentMethod
}