> 1) "What does this code do" > > range(1, 10).forEach( (i) -> System.out.println(i) ); Why would this be different from: for(int i=0; i<10; i++) println(i); Or from the numerous methods that take half-open (start, end) pairs, like String.substring?