##Looping with `redo`

When looping inside a block, using `redo` instead of `loop{}` can save you a few bytes

`redo` returns to the beginning of the block and executes the whole thing again.

Consider this lambda which prints the numbers from `1` to `a` inclusive:

<!-- language-all: lang-ruby -->

 ->a{b=0;loop{p b+=1;b<a||break}} # 32 bytes

You can save 7 bytes by using `redo`

 ->a,b=0{p b+=1;b<a&&redo} # 25 bytes

Note that `b=0` was moved from the body to the arguments to avoid it being reset every time.

If you can't implement `redo`, consider that a `while...end` loop might be shorter (-3 bytes in this case)

 ->a{b=0;while b<a;p b+=1;end} # 29 bytes

Of course in this case, since the end-point is defined (`a`), you can just write this:

 ->a{(1..a).map{|b|p b}} # 23 bytes

`redo` mostly helps when the end-point is unknown