如何在haskell中合并两个列表

如何在haskell中合并两个列表,haskell,Haskell,我有两个列表x=[“a”、“b”、“c”]和y=[“阿根廷”、“巴西”、“加拿大”]。我想要一个列表,像[[“a”,“阿根廷”],[“b”,“巴西”],[“c”,“加拿大”]。 有人能帮我吗?谢谢。我不确定是否有更简单的方法,但您可以使用zip生成元组列表,然后将其映射回列表中 Prelude> map (\(a,b) -> [a,b]) $ zip ["a","b","c"] ["Argentina","Brazil","Canada"] [["a","Argentina"],["

我有两个列表
x=[“a”、“b”、“c”]
y=[“阿根廷”、“巴西”、“加拿大”]
。我想要一个列表,像
[[“a”,“阿根廷”],[“b”,“巴西”],[“c”,“加拿大”]

有人能帮我吗?谢谢。

我不确定是否有更简单的方法,但您可以使用
zip
生成元组列表,然后
将其映射回列表中

Prelude> map (\(a,b) -> [a,b]) $ zip ["a","b","c"] ["Argentina","Brazil","Canada"]
[["a","Argentina"],["b","Brazil"],["c","Canada"]]
Edit:丹尼尔·马丁指出
zipWith
更简单

Prelude> zipWith (\a b -> [a,b]) ["a","b","c"] ["Argentina","Brazil","Canada"]
[["a","Argentina"],["b","Brazil"],["c","Canada"]]

我不确定是否有更简单的方法,但您可以使用
zip
生成元组列表,然后
将其映射回列表中

Prelude> map (\(a,b) -> [a,b]) $ zip ["a","b","c"] ["Argentina","Brazil","Canada"]
[["a","Argentina"],["b","Brazil"],["c","Canada"]]
Edit:丹尼尔·马丁指出
zipWith
更简单

Prelude> zipWith (\a b -> [a,b]) ["a","b","c"] ["Argentina","Brazil","Canada"]
[["a","Argentina"],["b","Brazil"],["c","Canada"]]
简单使用

zipWith (\x y -> [x,y])
简单使用

zipWith (\x y -> [x,y])

在没有看到您的用例的情况下,我猜元组实际上已经足够了,并且更安全,因此这只是
zip

x = ["a","b","c"]
y = ["Argentina","Brazil","Canada"]
z = zip x y

Prelude> z
[("a","Argentina"),("b","Brazil"),("c","Canada")]

在没有看到您的用例的情况下,我猜元组实际上已经足够了,并且更安全,因此这只是
zip

x = ["a","b","c"]
y = ["Argentina","Brazil","Canada"]
z = zip x y

Prelude> z
[("a","Argentina"),("b","Brazil"),("c","Canada")]

或者跳过
map
只使用
zipWith
。或者跳过
map
只使用
zipWith
。看起来像课程作业。看起来像课程作业。