Sto cercando di capire come creare unioni e tipi di record discriminati; in particolare come combinarli per la massima leggibilità. Ecco un esempio: diciamo che una squadra sportiva può avere punti (sia punti di lega che differenza reti), oppure può essere sospesa dal campionato nel qual caso non ha punti o differenza reti. Ecco come ho cercato di esprimere che:Unione di unioni discriminate con tipi di record
type Points = { LeaguePoints : int; GoalDifference : int }
type TeamState =
| CurrentPoints of Points
| Suspended
type Team = { Name : string; State : TeamState }
let points = { LeaguePoints = 20; GoalDifference = 3 }
let portsmouth = { Name = "Portsmouth"; State = points }
Il problema arriva alla fine dell'ultima riga, dove dico 'state = punti'. Ricevo che "Expression avrebbe dovuto essere di tipo TeamState ma qui ha tipo Points". Come faccio ad aggirarlo?
È bellezza! Grazie pad. – Kit
(segnerà come risposta se consentito - 6 minuti!) – Kit