I would like to enumerate an iterator with known length in reverse order. Something like:
julia> for t in enumerate(["a","b","c"], reverse=true); println(t); end
(3, "c")
(2, "b")
(1, "a")
Is there something builtin? For the moment, I build a vector and reverse it and iterate and change the index with “length - i” but it’s bad because I do not benefit from it being an iterator.
             
            
              
              
              1 Like
            
                
            
           
          
            
            
              julia> for t in Iterators.reverse(enumerate(["a","b","c"])); println(t); end
(3, "c")
(2, "b")
(1, "a")
             
            
              
              
              11 Likes
            
            
           
          
            
            
              I just stumbled on this:
julia> reverse(enumerate([1,2,3]))
ERROR: MethodError: no method matching reverse(::Base.Iterators.Enumerate{Vector{Int64}})
Closest candidates are:
  reverse(::Tuple)
   @ Base tuple.jl:562
  reverse(::Pair{A, B}) where {A, B}
   @ Base pair.jl:53
  reverse(::NamedTuple)
   @ Base namedtuple.jl:324
  ...
Stacktrace:
 [1] top-level scope
   @ REPL[1]:1
julia> Iterators.reverse(enumerate([1,2,3]))
Base.Iterators.Reverse{Base.Iterators.Enumerate{Vector{Int64}}}(enumerate([1, 2, 3]))
Is there a reason/point-of-conflict for Iterators.reverse not being exported and I have to specify or could this be changed?