IT-lexicon › Programmeren › Sumtype

Sumtype

Programmeren Svenska → Bijgewerkt: 2026-10-03

Kenmerk van een typesysteem: een type dat één van meerdere varianten kan zijn, elk met eigen velden. Rust-enum, Haskell-data, Swift-enum, TypeScript-union, Java sealed interface; een modern alternatief voor null en klassenhiërarchieën.

Het klassieke voorbeeld is Result<T, E> = Ok(T) | Err(E). Option<T> = Some(T) | None vervangt null. Tagged union (gediscrimineerde union) is een synoniem. Sumtypes dwingen uitputtende matching af: komt er een variant bij, dan moet overal de code mee, wat refactoring door de compiler laat sturen. Het tegenovergestelde is het producttype (een struct heeft alle velden tegelijk). Het OOP-equivalent is sealed classes met het visitorpatroon. Ontbreekt in Go, Python (typing.Union komt in de buurt) en Java vóór versie 21. Ontwerpprincipe van Yaron Minsky: ‘make illegal states unrepresentable’.

← Terug naar het lexicon