我正在创建列表中的单词映射,但我得到此返回值和下面的错误。当我手动添加内容时,我可以Map.find
没有任何问题。像这样的类型错误是否有很好的资源?
# val word_mapping : int DictMap.t list =
[<abstr>; <abstr>; <abstr>; <abstr>; <abstr>; <abstr>; <abstr>; <abstr>;
<abstr>]
# DictMap.find "There" word_mapping;;
Error: This expression has type int DictMap.t list
but an expression was expected of type
'a DictMap.t = 'a Map.Make(String).t
答案 0 :(得分:1)
如果你想要更好的答案,你应该透露你的代码。
输入错误消息已经解释了什么是错误的:您没有创建一个单词地图到int DictMap.t
类型的整数,而是创建一个单词的MAPS列表到int DictMap.t list
类型的整数。我想你的代码就像
List.map (fun (k,v) -> DictMap.add k v DictMap.empty) [("a",1); ("b",2); ... ]
或类似的东西。
您需要做的是从一个空的DictMap.t
开始并使用列表折叠来增长它,例如:
List.fold_left (fun dict (k,v) -> DictMap.add k v dict) DictMap.empty [("a",1); ("b",2); ... ]