File: DiscriminatedUnions.fs

package info (click to toggle)
mono 6.12.0.199%2Bds-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,192 kB
  • sloc: cs: 11,181,844; xml: 2,850,076; ansic: 689,413; cpp: 123,344; perl: 59,361; javascript: 30,841; asm: 21,845; makefile: 19,951; sh: 15,030; python: 4,771; pascal: 925; sql: 859; sed: 16; php: 1
file content (18 lines) | stat: -rw-r--r-- 593 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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