Functional programming 如何将List.fold_左ocaml与多个参数一起使用?

Functional programming 如何将List.fold_左ocaml与多个参数一起使用?,functional-programming,ocaml,Functional Programming,Ocaml,所以我有一个这样的函数 let test (item: 'a ) (factors: items) : ('b list) = .... 此函数接收某些“a”元素的项和我自己的项类型,这是我传递给它的另一个项列表。在做了一些事情之后,我返回了一个不同类型的列表 如何将List.fold_left与此函数一起使用,这样,如果我有一个“a项”列表,我就可以对每个项单独应用测试,并将“因子”传递给所有项,然后我就可以为每个项连接生成的“b类型列表” 例如,我需要处理以下列表: [somea; s

所以我有一个这样的函数

let test (item: 'a ) (factors: items) : ('b list) =
  ....
此函数接收某些“a”元素的项和我自己的项类型,这是我传递给它的另一个项列表。在做了一些事情之后,我返回了一个不同类型的列表

如何将List.fold_left与此函数一起使用,这样,如果我有一个“a项”列表,我就可以对每个项单独应用测试,并将“因子”传递给所有项,然后我就可以为每个项连接生成的“b类型列表”

例如,我需要处理以下列表:

[somea; someb; somec]
as 
(test somea factors)@(test someb factors)@(test somec factors)

这是List.fold_left不适用的任务吗?还有其他功能我可以使用吗?我不能递归遍历和调用函数,因为代码中的其他方法存在一些相互递归的问题,所以还有其他方法吗?List.map在这里有用吗?

对于这个特殊目的,如果
factors
test
的第一个参数,情况会更好。让我们调用此函数
fliptest

let fliptest a b = test b a
那么你的函数看起来是这样的(在我看来):


(如果这不太正确,可能很接近。)

哈哈,这就是我最终的结果:p.我想我刚开始只是想把一个方形的钉子塞进一个圆孔里。谢谢你!
let process factors list =
    List.concat (List.map (fliptest factors) list)