我有以下问题,我的函数采用元组和对的列表,它应该返回一个元组,但我得到错误说
a is tuple contains (int*list) and x is list of pairs [(a1,b1).....(an,bn)]
我想要做的是将两个列表添加在一起让我说我传入[9;9]
[1;0;2]
然后它应该返回[2;0;1]
,我使用list.fold_left
尾这样做的递归。这是我迷惑的功能,
我传入了
list.fold_left f (0;[]) (List.combine(List.rev(l1),List.rev(l2))
所以a
应该是包含(int*list)
的元组
x是对的列表
答案 0 :(得分:1)
当您使用List.fold_left
时,您的函数一次只能获取列表中的一个元素。在我看来,您的函数f
被编写为期望列出的事物为x
。但是x
只是一对(如果我正确地阅读你的代码)。
修改强>
由于您编写了f
,好像x
是一个列表,那么当您使用List.fold_left
f
时,您实际上是在说它的论点应该是列表清单。这是错误消息告诉您的内容。如果你重写f
以便x
是一对(这是你想要的,我很确定),这将解决错误。