> Am 02.03.2015 um 11:28 schrieb Niklas Keller <m...@kelunik.com>: > 2015-03-02 11:11 GMT+01:00 Bob Weinand <bobw...@hotmail.com > <mailto:bobw...@hotmail.com>>: > > Am 02.03.2015 um 01:17 schrieb Niklas Keller <m...@kelunik.com > > <mailto:m...@kelunik.com>>: > > > > 2015-03-02 0:52 GMT+01:00 Daniel Lowrey <rdlow...@php.net > > <mailto:rdlow...@php.net>>: > > > >> Hi folks, > >> > >> I'd like to initiate discussion on a proposal to implement generator > >> delegation via the following new syntax inside generator functions: > >> > >> yield * <expr> > >> > >> The Generator Delegation RFC is available here: > >> > >> https://wiki.php.net/rfc/generator-delegation > >> <https://wiki.php.net/rfc/generator-delegation> > >> > >> This proposal is conceptually related to (and requires functionality > >> proposed by) the forerunning Generator Return Expressions RFC here: > >> > >> https://wiki.php.net/rfc/generator-return-expressions > >> <https://wiki.php.net/rfc/generator-return-expressions> > >> > >> > >> Thanks for your time, > >> > >> Daniel > >> > > > > The proposed syntax has an issue: > > > > <?php > > > > function a () { > > echo yield * 3; > > } > > > > $a = a(); > > $a->send(42); > > > > http://3v4l.org/n1sGb#v550 <http://3v4l.org/n1sGb#v550> > > > > This is currently valid PHP. > > > > Regards, Niklas > > Hey, > > I think we could use "yield from" as operator here. > > Yes, BC. So, I won't make "from" a keyword, but rather specify an own token > for "yield from" (T_YIELD_FROM). > That way we have no BC break, except someone tries to yield a constant named > "from". I think that's a really minor break … and in case this breaks > someones code, he needs to wrap the constant in parenthesis: "yield (from)". > > We can have nice syntax here with a minimal break, so, then, why not? > > Thanks, > Bob > > If those keywords can be combined to one, that would be totally fine. > I think BC breaks are less a problem when the lexer RFC passes, but that > shouldn't lead to a lot more keyboards being added. > So yield from will be totally fine, it's already used in other languages. > > Regards, Niklas
As said, I won't add a "from" keyword. It's just the combination of "yield" and "from" with will be interpreted differently at lexer level. And yes, that's how e.g. Python calls it too, hence this suggestion. Bob