如何将StringMap转换为OCaml中的列表?

如何将StringMap转换为OCaml中的列表?,ocaml,ocamllex,Ocaml,Ocamllex,我对OCaml非常陌生,正在尝试将StringMap转换为OCaml中的列表 该地图是根据以前的列表生成的 let map = List.fold_left(<SOME CODE HERE, WHICH I AM OMITTING> ) StringMap.empty in StringMap.fold(fun w c newlist -> (c,w)::newlist) map[] 让map=List.fold\u向左( )StringMap.empty 在

我对OCaml非常陌生,正在尝试将StringMap转换为OCaml中的列表

该地图是根据以前的列表生成的

let map = List.fold_left(<SOME CODE HERE, WHICH I AM OMITTING>
    ) StringMap.empty
    in StringMap.fold(fun w c newlist -> (c,w)::newlist) map[]
让map=List.fold\u向左(
)StringMap.empty
在StringMap.fold中(fun w c newlist->(c,w)::newlist)map[]
上面代码的最后一行给出了以下错误: 此表达式的类型为StringMap.key list->int StringMap.t 但需要类型为的表达式 'a StringMap.t='a Map.Make(String.t

请注意:这段代码被输入到一个ocamlex文件(.mll)中,当我试图执行生成的词法分析器(.ml)文件时,会出现这个错误

为什么我会犯这个错误?我如何让我的代码工作


谢谢

错误告诉您,
map
值的类型为
StringMap.key list->int-StringMap.t
,这意味着它是一个函数,而不是您所期望的映射。此外,函数签名告诉您上一个表达式中缺少了什么,以便按预期获得
int StringMap.t
:您需要向调用
List.fold__left
,类型为
StringMap.key List
,我假设它是
字符串列表

let map = List.fold_left(<SOME CODE HERE, WHICH I AM OMITTING>
) StringMap.empty string_list
让map=List.fold\u向左(
)StringMap.empty string\u列表

其中
string\u list
是缺少的参数:用于构建映射的键列表。

StringMap。绑定将返回
(键,值)
对的列表