+1 for sum types a la F# (discriminated unions). They're very clean and minimal.
type Option<'a> =
| Some of 'a
| None
let opt = Some("hello")
match opt with
| Some x -> printfn "%A" x
| None -> prinfn "None"
Run
type Shape =
| Rectangle of width: float * length: float
| Circle of radius: float
match shape with
| Rectangle(width = w) -> w
| Circle(radius = r) -> r
Run
- Sum types, 2024 variant blackmius
- Sum types, 2024 variant ElegantBeef
- Sum types, 2024 variant blackmius
- Sum types, 2024 variant ElegantBeef
- Sum types, 2024 variant Araq
- Sum types, 2024 variant bajith
- Sum types, 2024 variant Araq
- Sum types, 2024 variant bajith
- Sum types, 2024 variant bajith
- Sum types, 2024 variant TKD
- Sum types, 2024 variant walkr
- Sum types, 2024 variant ingo
- Sum types, 2024 variant Nerve
- Sum types, 2024 variant hamidrb80
- Sum types, 2024 variant Chronos
- Sum types, 2024 variant crfout
- Sum types, 2024 variant xigoi
- Sum types, 2024 variant Araq
- Sum types, 2024 variant didlybom
- Sum types, 2024 variant Araq
- Sum types, 2024 variant Araq
