Where is List.zip in Elm?
unzip
is a function available as part of the list package.
List.unzip [(1, 2), (3, 4)]
-- ([1,3],[2,4])
It's defined as:
Decompose a list of tuples into a tuple of lists.
But there is no corresponding zip
function to compose a tuple of lists into a list of tuples. If you just want a list to be zipped with it's index, then you can use List.indexedMap
.
List.indexedMap (\x y -> (x, y)) ["a", "b", "c"]
-- [(0,"a"),(1,"b"),(2,"c")]
And you could substitute (\x y -> (x, y))
with Tuple.pair
which does the same thing.
List.indexedMap Tuple.pair ["a", "b", "c"]
-- [(0,"a"),(1,"b"),(2,"c")]
And if you don't care about indexes but instead have two lists, you can zip those two lists together with List.map2
.
List.map2 Tuple.pair [1, 3, 5] ["a", "b", "c"]
-- [(1,"a"),(3,"b"),(5,"c")]
Happy Zipping!
Tweet