1
這是我的函子ORDTYPE。我想在EmptyQueue中使用比較。 我不知道如何注入函子。所有時間我都會收到錯誤,我簽名無效。 我試圖聲明函數(鍵:ORDTYPE) - >結構之前,但它是錯誤的。 我不明白函子的想法。我在OCaml wiki中看到了一些簡單的例子,但我不知道如何處理更復雜的事情。OCaml瞭解更復雜的函數
總之我想在空隊列中使用比較器。但我不知道如何處理這個更抽象。
module type ORDTYPE =
sig
type t
val compare : t -> t -> int
end;;
module Icmp:ORDTYPE with type t= int=
struct
type t = int
let compare = fun x y -> if(x< y) then 0 else 1
end;;
module type STH=
sig
type priority
type 'a t
val comp: x -> x->bool
end;;
module Emptyqueue (Comp: ORDTYPE): STH with type priority= int =
struct
type priority = int
type 'a t = Empty
let comp = fun x y -> Comp.comp x y
end;;
我編輯了我的想法,我應該這樣做,但事實並非如此。工作。