Tôi đã thực hiện một đại diện của bộ (cây tìm kiếm cân bằng) trong OCaml. Nó thực sự là một functor Make
kýTrong OCaml, có thể xác định Bản đồ theo các điều khoản của Bộ không?
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
nơi
module type ORDERED_TYPE = sig type t val compare : t -> t -> int end
Bây giờ tôi muốn thực hiện một cuốn từ điển như Map
trong thư viện chuẩn. Nó phải có chữ ký như
module Make: functor (T : ORDERED_TYPE) -> sig
type key = T.t
type +'a t
...
end
nơi t
là loại từ điển.
Thực hiện các cây tìm kiếm cân bằng một lần nữa không thanh lịch, vì vậy tôi muốn xác định các từ điển về các tập hợp được triển khai như một hàm trên. Tôi có thể làm điều đó?
Vấn đề là tuyên bố của bài tập về nhà dường như đòi hỏi tôi phải xác định Bản đồ theo thuật ngữ Đặt trong những từ rất mơ hồ. BTW, nếu tôi cố gắng vượt qua một cấu trúc để Đặt, tôi phải xác định loại t, nhưng làm thế nào tôi có thể làm điều đó? Tôi muốn t là loại đa hình. – Pteromys