menu_book Course Curriculum (F#) expand_more
Discriminated unions
Learn Discriminated unions in F# through a focused explanation, a dedicated topic-specific example, an engineering boundary, and a mastery check.
Discriminated unions is a focused F# lesson inside Bindings and Types. The example uses the construct named in the lesson directly rather than reusing a generic placeholder.
Trace the example from its inputs through Discriminated unions and identify the behavior that would change if that construct were removed or replaced. Pay attention to the language-specific rules shown by the syntax, because neighboring lessons intentionally exercise different mechanisms.
Topic-specific example
type Payment =
| Cash of decimal
| Card of last4:string * amount:decimal
let payment = Card("4242", 89.5M)
printfn "%A" payment
For Discriminated unions, test one realistic boundary: empty data, invalid input, unavailable resources, lifetime/cleanup, type constraints, or concurrency timing where applicable. A successful happy path is not enough to prove the construct is used correctly.