##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