Loops/Wrong ranges

You are encouraged to solve this task according to the task description, using any language you may know.
Some languages have syntax or function(s) to generate a range of numeric values from a start value, a stop value, and an increment.

The purpose of this task is to select the range syntax/function that would generate at least two increasing numbers when given a stop value more than the start value and a positive increment of less than half the difference.   You are then to use that same syntax/function but with different parameters; and show, here, what would happen.

Use these values if possible:



start 
stop 
increment 
Comment


 -2
2
1
Normal


 -2
2
0
Zero increment


 -2
2
-1
Increments away from stop value


 -2
2
10
First increment is beyond stop value


2
-2
1
Start more than stop: positive increment


2
2
1
Start equal stop: positive increment


2
2
-1
Start equal stop: negative increment


2
2
0
Start equal stop: zero increment


0
0
0
Start equal stop equal zero: zero increment

Related tasks

   Loop over multiple arrays simultaneously
   Loops/Break
   Loops/Continue
   Loops/Do-while
   Loops/Downward for
   Loops/For
   Loops/For with a specified step
   Loops/Foreach
   Loops/Increment loop index within loop body
   Loops/Infinite
   Loops/N plus one half
   Loops/Nested
   Loops/While
   Loops/with multiple ranges
   Loops/Wrong ranges


for $i (
     [ -2,    2,    1], #1 Normal
     [ -2,    2,    0], #2 Zero increment
     [ -2,    2,   -1], #3 Increments away from stop value
     [ -2,    2,   10], #4 First increment is beyond stop value
     [  2,   -2,    1], #5 Start more than stop: positive increment
     [  2,    2,    1], #6 Start equal stop: positive increment
     [  2,    2,   -1], #7 Start equal stop: negative increment
     [  2,    2,    0], #8 Start equal stop: zero increment
     [  0,    0,    0], #9 Start equal stop equal zero: zero increment
) {
    $iter = gen_seq(@$i);
    printf "start: %3d  stop: %3d  incr: %3d | ", @$i;
    printf "%4s", &$iter for 1..10;
    print "\n";
}
 
sub gen_seq {
    my($start,$stop,$increment) = @_;
    $n = 0;
    return sub {
        $term = $start + $n++ * $increment;
        return $term > $stop ? '' : $term;
    }
}