5

関数がlist_fun : int_list -> string listあり、その関数でモジュールとして定義したStringSetを使用すると、関数を返して取得StringSet = Set.Make(String) ;;しようとしますが、代わりに、StringSetと同じものと思われるを取得します。Set.elements sstring listStringSet.elt listtype t = string

これらのタイプが同じように定義されていることをOCAMLにどのように理解させますか?OCAML標準ライブラリ関数を使い始めたときにこの問題に遭遇したケースがいくつかあります。

4

1 に答える 1

7

OCamlはそれらが同じように定義されていることをすでに知っています-抽象化の背後にある型を隠すために何か奇妙なことをしているのでない限り、それはとを同じ型として扱いStringSet.elt listますstring list

于 2011-03-26T03:32:00.143 に答える