diff --git a/src/implementations.jl b/src/implementations.jl index d2e6124..3eee8d9 100644 --- a/src/implementations.jl +++ b/src/implementations.jl @@ -267,7 +267,7 @@ shape(xs::Iterators.Enumerate) = shape(xs.itr) function halve(xs::Iterators.Enumerate) left, right = halve(xs.itr) - return enumerate(left), zip(length(left)+1:length(xs), right) + return enumerate(left), zip(reshape(length(left)+1:length(xs), size(right)), right) end function halve(xs::Iterators.Reverse) diff --git a/test/test_halve.jl b/test/test_halve.jl index fa71c68..ed69bfe 100644 --- a/test/test_halve.jl +++ b/test/test_halve.jl @@ -55,6 +55,7 @@ partition(1:10, 3) partition(1:10, 4) enumerate([11, 22, 33, 44]) enumerate([11, 22, 33, 44, 55]) +enumerate(Iterators.product(1:3, 'a':'b')) zip(1:3, partition(1:10, 4)) zip("αβγ") zip(enumerate([11, 22, 33, 44]), 'a':'d')