@@ -633,25 +633,9 @@ defmodule List do
633
633
[ other ]
634
634
end
635
635
636
- @ doc """
637
- Zips corresponding elements from each list in `list_of_lists`.
638
-
639
- The zipping finishes as soon as any list terminates.
640
-
641
- ## Examples
642
-
643
- iex> List.zip([[1, 2], [3, 4], [5, 6]])
644
- [{1, 3, 5}, {2, 4, 6}]
645
-
646
- iex> List.zip([[1, 2], [3], [5, 6]])
647
- [{1, 3, 5}]
648
-
649
- """
650
- @ spec zip ( [ list ] ) :: [ tuple ]
651
- def zip ( [ ] ) , do: [ ]
652
-
636
+ @ doc deprecated: "Use Enum.zip/1 instead"
653
637
def zip ( list_of_lists ) when is_list ( list_of_lists ) do
654
- do_zip ( list_of_lists , [ ] )
638
+ Enum . zip ( list_of_lists )
655
639
end
656
640
657
641
@ doc ~S"""
@@ -1372,33 +1356,4 @@ defmodule List do
1372
1356
defp do_pop_at ( [ head | tail ] , index , default , acc ) do
1373
1357
do_pop_at ( tail , index - 1 , default , [ head | acc ] )
1374
1358
end
1375
-
1376
- # zip
1377
-
1378
- defp do_zip ( list , acc ) do
1379
- converter = fn x , acc -> do_zip_each ( to_list ( x ) , acc ) end
1380
-
1381
- case :lists . mapfoldl ( converter , [ ] , list ) do
1382
- { _ , nil } ->
1383
- :lists . reverse ( acc )
1384
-
1385
- { mlist , heads } ->
1386
- do_zip ( mlist , [ to_tuple ( :lists . reverse ( heads ) ) | acc ] )
1387
- end
1388
- end
1389
-
1390
- defp do_zip_each ( _ , nil ) do
1391
- { nil , nil }
1392
- end
1393
-
1394
- defp do_zip_each ( [ head | tail ] , acc ) do
1395
- { tail , [ head | acc ] }
1396
- end
1397
-
1398
- defp do_zip_each ( [ ] , _ ) do
1399
- { nil , nil }
1400
- end
1401
-
1402
- defp to_list ( tuple ) when is_tuple ( tuple ) , do: Tuple . to_list ( tuple )
1403
- defp to_list ( list ) when is_list ( list ) , do: list
1404
1359
end
0 commit comments