我正在尝试创建一个OCaml函数
例如:
我已经有了一个名为gather的函数,它将获取一个嵌套列表并从每个列表中提取特定索引的元素。所以基本上使用前面的例子,我可以说
造成这么多麻烦的原因是因为受到了限制(是的,这是为学校而设计的)。我不允许使用循环或局部 / 全局变量。我也不能在函数体内使用'let'。是否有另一种递归使用
rv
,它将遍历一个嵌套列表并重新组织元素到另一个嵌套列表中,使得第一个列表由每个原始列表的第一个元素组成,第二个列表由每个列表的第二个元素组成,以此类推。例如:
[["a"; "b"; "c"]; ["d"; "e"; "f"]]
会变成[["a"; "d"]; ["b"; "e"]; ["c"; "f"]]
。我已经有了一个名为gather的函数,它将获取一个嵌套列表并从每个列表中提取特定索引的元素。所以基本上使用前面的例子,我可以说
gather(list, 1)
并得到["b"; "e"]
返回值。我需要一种方法来通过List.length
次操作,并对每个元素索引使用gather。造成这么多麻烦的原因是因为受到了限制(是的,这是为学校而设计的)。我不允许使用循环或局部 / 全局变量。我也不能在函数体内使用'let'。是否有另一种递归使用
gather
的方法?是否应该创建另一个函数递归使用gather
,然后在rv
中重复使用该函数?如果是,您会如何处理?
fold_left
和fold_right
的练习。 - Gilles 'SO- stop being evil'