私はJane StreetのCore.stdを自分のプログラムで使用していますが、標準OCaml Mapを使いたいと思っています。しかし、memのような関数を呼び出すと、Core.stdのバージョンの署名が必要になります。この障害を乗り越えるにはどうすればいいですか?ありがとうございました!OCaml標準マップ対Jane Street Core.stdマップ
Error: This expression has type string but an expression was expected of type
'a PortTable.t = (string, 'a, PortTable.Key.comparator_witness) t
私は標準のものを使用したい:それはMEMのCore.stdのバージョンではなく、標準のものを期待していますよう
open Core.Std
open Map
module PortTable = Map.Make(String)
let portTable = PortTable.empty
let string_add = (Int64.to_string packet.dlDst) in
PortTable.mem string_add portTable
これ
は、私のためにコンパイルされません。誰でも助けてくれれば大いに感謝します。ここで
ローカルモジュールは、混雑した名前空間 –
@NickZuberを持っている場合は特に、コア・ライブラリーが設計され、あまりにも代わりにグローバルファイル内のモジュールを開くここでは価値があるかもしれませんが開きますそのようなy、Core.Stdを開く必要があります。これは、標準ライブラリをオーバーレイしているためです。 – ivg
@ivg私はここでMapモジュールを指していました。 –