J'ai Job
l'égalité est définie comme l'égalité de l'ID du travail. Il ne devrait jamais y avoir deux emplois avec le même ID. Ils ne sont pas comparables pour autant, un job n'est pas plus o moins qu'un autre, seulement égal ou non.
type JobId = JobId of string
[<CustomEquality; NoComparison>]
type Job = {
Id: JobId
} with
interface System.IEquatable<Job> with
member x.Equals y = x.Id = y.Id
type Resource = {
Id: string
Capacity: float
Usage: Map<Job,float>
}
En Map
a besoin d'une comparaison cependant.
- Pourquoi un
Map
besoin d'une comparaison ? - Quelle structure dois-je utiliser ? (Je suppose que je pourrais utiliser un
IDictionary
mais j'essaie de rester fonctionnel).