Пользовательское сравнение и равенство в fsharp - PullRequest
6 голосов
/ 02 марта 2012

Кажется, нужно переопределить равенство, чтобы переопределить сравнение.

Это правда? Есть ли причина, по которой я скучаю?

1 Ответ

6 голосов
/ 02 марта 2012

Нет.Можно иметь только пользовательское сравнение

[<CustomComparison>]
[<StructuralEquality>]
type Node =
    | Data of string
    | Nil

    with

    interface System.IComparable with 
        member x.CompareTo y = 0

Обратите внимание, что этот код выдаст предупреждение, рекомендующее также реализовать равенство для типа.Это вообще хорошая идея.Если вы столкнетесь с трудностями при выполнении сравнения, тогда равенство прямо вперед (Сравнение == 0).

...