我有这个问题,我有一个字符串int的列表,我想用相同的字符串ex总和整数: 列表 - > [(“a”,1);(“b”,1);(“a”,1);(“c”,1)]应该返回 列表 - > [(“a”,2);(“b”,1);(“c”,1)]命令不会在以后排序“
现在我有了这个
let rec merge l =
match l with
| [] -> []
| (c1,n1)::(c2,n2)::xs -> if c1 = c2
then
(c1, n1+n2)::merge xs
else
something i cant think of yet
;;
那是我的火车,但我知道它不会工作
ps我不能使用由ocaml支持的命令性内容
答案 0 :(得分:0)
如果您认为您的列表已排序,那么我无法想到的事情"只是复制列表的头部并递归地将函数应用于尾部:(c1,n1)::merge ((c2,n2)::xs)
。