Я реализовал представление наборов (сбалансированных деревьев поиска) в OCaml. Это на самом деле функтор Make
подписиВ OCaml, можно ли определить карту в терминах Set?
module Make :
functor (T : ORDERED_TYPE) ->
sig
type elt = T.t
type t
val empty : t
val cons : elt -> t -> t
val delete : elt -> t -> t
val mem : elt -> t -> bool
val cardinal : t -> int
end
где
module type ORDERED_TYPE = sig type t val compare : t -> t -> int end
Теперь я хотел бы реализовать словарь как Map
в стандартной библиотеке. Он должен иметь подпись, как
module Make: functor (T : ORDERED_TYPE) -> sig
type key = T.t
type +'a t
...
end
t
где тип словарей.
Реализация сбалансированных поисковых деревьев снова не изящна, поэтому я хочу определить словари в терминах множеств, реализованных как функтор выше. Я могу это сделать?
Проблема заключается в том, что утверждение домашней работы, по-видимому, требует от меня определения Карты в терминах Set в очень расплывчатых словах. BTW, если я пытаюсь передать структуру в Set, я должен определить тип t, но как я могу это сделать? Я хочу, чтобы t был полиморфным. – Pteromys