У меня есть Job
тип, равенство определяется как равный идентификатор задания. Никогда не должно быть двух заданий с одинаковым идентификатором. Они не сопоставимы, хотя, одна работа не больше или меньше , чем другая, только равна или нет.
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>
}
Map
требует сравнения.
- Почему
Map
нужно сравнение?
- Какую структуру я должен использовать? (Я предполагаю, что мог бы использовать
IDictionary
, но я пытаюсь оставаться функциональным.)