# Idiom #257 Traverse list backwards

Print each index i and value x from the list items, from the last down to the first.

``````[...items].reverse().forEach((item, index) =>
console.log(Math.abs(index -= items.length), item));``````
``````for(int i = items.Count - 1; i >= 0; i--)
{
Console.WriteLine(\$"Index = {i}, Item = {items[i]}");
}``````
``````var i = items.length ;
for (var e in items.reversed) {
i--;
print("\$i, \$e");
}``````
``````do i=size(items),1,-1
print *,i,items(i)
end do``````
``import "fmt"``
``````for i := len(items) - 1; i >= 0; i-- {
x := items[i]
fmt.Printf("Item %d = %v \n", i, x)
}``````
``````import java.util.ArrayList;
import java.util.Collections;``````
``````Collections.reverse(items);
int i = 0;
for(T x : items) {
System.out.printf("%d %s%n", i, x);
i++;
}``````
``````for(int i = items.length-1;i>=0;i--){
System.out.println("Index:"+ i +", Value:" + items[i]);
}``````
``for i := items.count-1 downto 0 do writeln(i,' ',items[i]);``
``````for (\$i = \$#items; \$i >= 0; \$i--) {
print "\$i \$items[\$i]\n";
}``````
``````for i in range(len(items)-1, -1, -1):
print(i, items[i])``````
``````for i, x in enumerate(reversed(items)):
print(f'{i} {x}')
``````
``````items.each_with_index.reverse_each{|x, i| puts "#{i} #{x}" }
``````
``````for (i, item) in items.iter().enumerate().rev() {
println!("{} = {}", i, *item);
}``````
``````  for (i, x) in items.iter().rev().enumerate() {
println!("{i} = {x}");
}``````
``````(define (reversed-inspect items)
(foldl (lambda (x i)
(display (format "~a ~a\n" i x))
(sub1 i))
(sub1 (length items))
(reverse items)))``````

programming-idioms.org