转换列表Haskell



我有此列表([integer],[integer](我想转换为[(Integer,Integer(]。

根据我阅读的内容,我应该使用诸如MAP。

之类的高阶功能。
alterList :: ([Integer],[Integer]) -> [(Integer,Integer)]
alterList a = map(a -> .....?)

有指南吗?这两个列表均具有相同的大小。

就像我有两个列表([1,2,3,4],[5,6,7,9](,我想转换为[(1,5(,(2,6(,(3,7(,(4,8(]

因此,在您更正帖子后,我认为您想要

alterList :: ([Integer],[Integer]) -> [(Integer,Integer)]
alterList (l1, l2) = zip l1 l2

示例:

>>> alterList ([1,2,3,4],[5,6,7,9])
[(1,5),(2,6),(3,7),(4,9)]

这相当于

alterList' :: ([Integer],[Integer]) -> [(Integer,Integer)]
alterList' = uncurry zip

请注意,即使两个列表的尺寸不相同,此功能也可以工作:在这种情况下,它的作用好像最长的列表被截断为最短一个的长度。

最新更新