OCaml中List.map返回非预期类型问题求解
问题解决方法
你的问题出在调用函数时的列表参数格式错误:
- OCaml中,列表的元素之间用分号
;分隔,而逗号,是用来构造元组的。 - 你写的
["a","b"]实际上是一个只包含**单个元组("a","b")**的列表,类型是(string * string) list,所以List.map只会遍历一次,把1和这个元组配对,得到(1, ("a", "b"))。
修正方法
把调用时的列表参数改成用分号分隔元素:
make_pair 1 ["a"; "b"];;
这样列表的类型是string list,List.map会遍历两个元素"a"和"b",分别和1配对,最终返回预期的[(1,"a");(1,"b")]。
内容的提问来源于stack exchange,提问作者mg.
相关产品推荐
相关产品推荐

