因此,我在我的程序中使用Jane Street的Core.std來處理某些事情,但仍想使用標準OCaml映射。但是,當我調用像mem這樣的函數時,它期待着Core.std版本的簽名。我如何克服這個障礙?謝謝! open Core.Std
open Map
module PortTable = Map.Make(String)
let portTable = PortTable.empty
我試圖創建一個表示空的二叉樹(基本上,只有它的骨架)的類型。然後這個類型的變量將被用模式匹配來迭代。 我知道如何從標準類型(int,string等)的多態變體中實例化一個固定 - 請參見下面的int_tree。但是,目前尚不清楚是否可以從多態一個空的變體(empty_tree下面的行在編譯過程中失敗並伴隨SyntaxError)。 的代碼如下: type 'a binary_tree =
想象一下,我有一系列模塊A1..AnB1..Bn所有模塊都是完整的編譯單元。現在我定義與這些模塊的兩個新模塊作爲嵌套: (* A.mli *)
module A : sig
module A1
...
module An
end
(* A.ml *)
module A1 = A1
..
module An = An
(* B.mli *)
modul
我對Ocaml和ML一般都很陌生,而且我一直有一個非常根本的問題。我正在使用模式匹配,並且在一個匹配中,我想打印兩個或多個連接的語句。例如。 chan^"("^var^")"^op2^(poc p); chan^"("^var^")"^op^(poc p) let processoperatorchange2 t2s2 proc2 op op2=
let rec poc2 p = mat
我有不同的用戶定義類型,我需要在一個集合中放置。在那一刻,我知道,定義一組模塊,我可以做這樣的事情: module Mut = Set.Make(struct type t = string ;; let compare = compare end);;
但是是有可能的,而不是字符串,有我自己的用戶定義類型,像這樣?: module Mut = Set.Make(struct type t =
我正在通過AST變換增長一種小型編程語言。也就是說,從虛擬機開始,慢慢添加一些幫助程序員的層。 由於每一層都知道如何將其新的類型,我做了這樣的事情: module AST0 = struct
type t = [
| `Halt
| `In
| `Out
| `Add of (int * int * int)
| `Sub of (in
我想知道是否有反正我可以在另一個函數中調用相同的函數,但使用不同的參數。這是我想要調用的函數的代碼。 let concattoset s set = SS.add s set
有了這個功能,我有一個調用這個函數,但有可能做這樣的事情的另一個功能: let op_change p set = concattoset (Format.asprintf "%a" processoperatorcha