Issue #12057 has been updated by Alexey Muranov.
Or maybe even not an iterator but a delimited continuation?
----------------------------------------
Feature #12057: Allow methods with `yield` to be called without a block
https://bugs.ruby-lang.org/issues/12057#change-56922
* Author: Alexey Muranov
* Status: Open
* Priority: Normal
* Assignee:
----------------------------------------
Trying to figure out how `yield` works in Python, i had the following idea.
Allow a method with `yield` to be called without a block. When a method encounters `yield`, if no block is given, the method returns an `Enumerator` object.
~~~ruby
def f
yield 'a'
yield 'b'
end
e = f
puts e.next # => a
puts e.next # => b
~~~
It seems that this is what `yield` in Python does, but in Python a function with `yield` cannot take a block. Why not to have both?
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>