19 lines
593 B
Forth
19 lines
593 B
Forth
module DiscriminatedUnions
|
|
|
|
//The preceding code declares a discriminated union Shape,
|
|
// which can have values of any of three cases: Rectangle, Circle, and Prism.
|
|
// Each case has a different set of fields.
|
|
type Shape =
|
|
| Rectangle of width : float * length : float
|
|
| Circle of radius : float
|
|
| Prism of width : float * float * height : float
|
|
|
|
let rect = Rectangle(length = 1.3, width = 10.0)
|
|
let circ = Circle (1.0)
|
|
let prism = Prism(5., 2.0, height = 3.0)
|
|
|
|
|
|
type SizeUnion = Small | Medium | Large // union
|
|
type ColorEnum = Red=5 | Yellow=7 | Blue=9 // enum
|
|
|