包含Haskell中列表列表的邮件列表

时间:2017-09-20 14:12:09

标签: list dictionary haskell zip tuples

我想用[Int]压缩[[String]],以便获得[[(Int, String)]]。 一个例子:

[1,2,3] and
[[a,b,c],[d,e,f]] becomes
[[(1,a),(2,b),(3,c)],[(1,d),(2,e),(3,f)]]

我怎么能这样做?我用地图尝试过一些东西,但没有成功。

1 个答案:

答案 0 :(得分:2)

您需要映射字符串列表并使用每个字符串压缩整个列表。

Prelude> myzip ints strings = map (zip ints) strings
Prelude> myzip [1,2,3] [["a", "b", "c"], ["d", "e", "f"]]
[[(1,"a"),(2,"b"),(3,"c")],[(1,"d"),(2,"e"),(3,"f")]]

使用currying,可以缩短为

myzip ints = map (zip ints)

然后可以使用组合缩短为以下内容:

myzip = map . zip