【发布时间】:2018-03-14 17:24:23
【问题描述】:
我想将元组列表转换为列表元组,元组的第一个列表由原始元组元素的第一个元素组成。 例如
convert [(1,2);(3,4);(5,6)] = ([1;3;5],[2;4;6])
像这样。
我尝试了几次,并通过以下代码成功获得 [1;3;5]。
let rec convert lst =
match lst with
|[]->[]
|(a,b)::tl->a::(convert tl)
但是我不知道如何获取元组 [2;4;6] 的第二个列表元素以及如何将它们合并到一个元组中。
【问题讨论】:
-
您正在研究的解决方案不会是尾递归的,并且有一种方法可以以尾递归的方式进行。尝试在@PatJ 的回答的帮助下完成你的任务,然后尝试进行尾递归,这实际上很容易,而且是一个很好的培训。 ;-)
标签: list recursion tuples ocaml