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>