如何在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
。看起来像课程作业。看起来像课程作业。