Actions
Feature #11498
closedKernel#loop: return the "result" value of StopIteration
Feature #11498:
Kernel#loop: return the "result" value of StopIteration
[ruby-core:<unknown>]
Description
Kernel#loop wraps use of Enumerator rescuing StopIteration raised by Enumerator#next, but it does not provide access to the "result" value of a finished enumerator.
If you wanted to get it, you'd have to rescue StopIteration by yourself.
This feels awkward when loop is capable of rescuing the exception.
So, my proposal here is to make Kernel#loop return the "result" value, which currently returns nothing (nil).
Kernel#loop takes a "return" of an enumerator (StopIteration) as "break" of a loop, so it should be natural to be able to carry a returned value through to the caller like it was given with "break".
With this enhancement, you could write something like this:
Attached is my implementation.
Files
Actions