我有以下子列表
[[1;5;10];
[2;6;11];
[3;7;12]];
我正在尝试创建以下子列表列表:
[[1;2;3];
[5;6;7];
[10;11;12]]
结果的第一个子列表应包含每个原始子列表的第一个元素,第二个结果子列表应包含每个原始子列表的第二个元素,依此类推。
每个子列表包含与其他子列表相同数量的元素。子列表的数量至少为2。
我当时在考虑使用List.map,但是我不确定要对每个子列表应用什么函数来吸引所需的元素。
这是我到目前为止所拥有的:
let rec compute list =
List.map (fun x -> ) list
任何建议都值得赞赏!
答案 0 :(得分:0)
在这里,您需要两次递归(因为您需要使用命令式语言的2个嵌入循环)。 第一次递归应该允许您遍历输入行,例如从1到3,并且在每次递归的每一步中,您将需要第二次递归来遍历整行。
您可以手动完成所有操作,也可以使用List.fold_left
。 (我会使用fold进行内部递归。