Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 将元组列表递归转换为列表元组_List_Haskell_Tuples - Fatal编程技术网

List 将元组列表递归转换为列表元组

List 将元组列表递归转换为列表元组,list,haskell,tuples,List,Haskell,Tuples,我需要一个递归函数,它从一个元组列表返回一个列表元组。换句话说,它的类型签名是 func :: [(a,b)] -> ([a],[b]) 以下是一个例子: λ> func [(1,3), (2,4)] ([1,2], [3,4]) 我创建了两个函数来返回元组中第一个和第二个元素的列表,并将它们连接起来,但我只需要一个递归函数来执行此操作。您正在寻找: 作为一般建议,当您知道一个类型签名并且您想知道是否有任何已经存在的函数具有该类型签名时,这是一个很好的选择;查找解压作为其第一个也

我需要一个递归函数,它从一个元组列表返回一个列表元组。换句话说,它的类型签名是

func :: [(a,b)] -> ([a],[b])
以下是一个例子:

λ> func [(1,3), (2,4)]
([1,2], [3,4])
我创建了两个函数来返回元组中第一个和第二个元素的列表,并将它们连接起来,但我只需要一个递归函数来执行此操作。

您正在寻找:


作为一般建议,当您知道一个类型签名并且您想知道是否有任何已经存在的函数具有该类型签名时,这是一个很好的选择;查找
解压
作为其第一个也是唯一的结果。

我可以找到解压实现吗?我搜索了它,但没有成功。@AnimeBear:嗯,GHC使用的实现可以通过单击我链接到的文档中
unzip
标题右侧的“源”链接找到,该链接指向。不过,这不是很有启发性;具有显式递归的实现可能类似于
unzip[]=[];解压((a,b):xs)=(a:as,b:bs),其中(as,bs)=解压xs
unzip :: [(a, b)] -> ([a], [b])