Предположим, у меня есть тип, определенный в качествегетерогенные множества в OCaml
type value =
None
| Int of int
| Float of float
| Complex of Complex.t
| String of string
| Char of char
| Bool of bool
, и я хочу, чтобы иметь возможность работать с Sets
этих значений. Из того, что я понял, я должен использовать функтор для конкретизации модуля Set
с конкретным типом и связанным с ним упорядочением.
Как это сделать в этом примере? Так как value
не может использоваться непосредственно внутри функтора Set.Make
?
Тогда, конечно, мне нужно уметь полностью упорядочить эти значения, поэтому я должен придумать что-то вроде предоставления предопределенного порядка различным типам, а затем упорядочить их по их эффективному значению .. Я прав?
Так, например, я могу принять решение Int of int < Float of int
и Int x < Int y
, если x < y
. Является ли это практическим подходом к тому, чего я пытаюсь достичь?
Вы хотите что хотите сравнить: Int int int Float of float? – aneccodeal