给出一个元组列表,
[(1,2),(3,4),(5,6)]
我需要解压缩它看起来像这样
[[1,3,5],[2,4,6]]
解压缩需要 ('a * 'a) list -> 'a list list
类型 .
到目前为止,我有这个作为我的解压缩功能,但我的输入不正确,我不知道如何访问传递('a *'a) .
val rec last =
fn (h::nil) => h
|(h::list) => last (list)
| (nil) => raise Empty;
fun unzip [] = []
| unzip L = [(map hd L), (map last L)];
这会返回 'a list list -> 'a list list
2 回答
你得到了一个元组列表
我们想要创建一个函数来重新组织它们
We know 输出应该类似于:
并且 we know map为我们提供了
list
的输出,这是我们正在寻找的数据类型 .从而,
我认为这是一个家庭作业问题,所以我会留在那里让你考虑适当的 Map 功能 . 考虑一下元组的行为以及如何操作元组内的数据 . 请记住,
f1
应该与f2
不同,因为两者操纵不同的东西 .去Cougs!
您也可以通过以下方式使用
foldr
unzip
: