On Sunday, March 15, 2015 at 1:45:37 AM UTC+5:30, Ian wrote:
> Now which should be considered definitive, the language reference or> the PEP? This question is not rhetorical; I don't know the answer.> Regardless of the answer though, the PEP at least illuminates the> design intent of the terminology.> > > [1] https://docs.python.org/3/reference/expressions.html#yield-expressions> > [2] https://www.python.org/dev/peps/pep-0255/
Thanks
That PEP deserves careful reading, particularly the end...
| BDFL Pronouncements
| Issue: Introduce another new keyword (say, "gen" or "generator") in
| place of "def", or otherwise alter the syntax, to distinguish
| generator-functions from non-generator functions.
|
| Con: In practice (how you think about them), generators *are*
| functions, but with the twist that they're resumable. The mechanics of
| how they're set up is a comparatively minor technical issue, and
| introducing a new keyword would unhelpfully overemphasize the
| mechanics of how generators get started (a vital but tiny part of a
| generator's life).
|
| Pro: In reality (how you think about them), generator-functions are
| actually factory functions that produce generator-iterators as if by
| magic. In this respect they're radically different from non-generator
| functions, acting more like a constructor than a function, so reusing
| "def" is at best confusing. A "yield" statement buried in the body is
| not enough warning that the semantics are so different.
|
| BDFL: "def" it stays. No argument on either side is totally
| convincing, so I have consulted my language designer's intuition. It
| tells me that the syntax proposed in the PEP is exactly right - not too
| hot, not too cold. But, like the Oracle at Delphi in Greek mythology,
| it doesn't tell me why, so I don't have a rebuttal for the arguments
| against the PEP syntax. The best I can come up with (apart from
| agreeing with the rebuttals ... already made) is "FUD". If this had
| been part of the language from day one, I very much doubt it would have
| made Andrew Kuchling's "Python Warts" page.
So while I dont go to the extent of suggesting introducing a different keyword for
generators, the fact that the overloading of def is problematic and arbitrary
comes from the horse's (ie BDFL's) mouth.
--
https://mail.python.org/mailman/listinfo/python-list
Recent Messages in this Thread |
|
Rustom Mody |
Mar 12, 2015 01:35 pm |
|
Chris Angelico |
Mar 12, 2015 01:55 pm |
|
brea...@gmail.com |
Mar 12, 2015 01:57 pm |
|
Steven DAprano |
Mar 12, 2015 04:27 pm |
|
Rustom Mody |
Mar 12, 2015 04:52 pm |
|
Marko Rauhamaa |
Mar 12, 2015 05:55 pm |
|
Rustom Mody |
Mar 13, 2015 02:23 am |
|
Steven DAprano |
Mar 13, 2015 03:30 am |
|
Rustom Mody |
Mar 13, 2015 05:28 am |
|
Chris Angelico |
Mar 13, 2015 08:23 am |
|
Rustom Mody |
Mar 13, 2015 09:12 am |
|
Marko Rauhamaa |
Mar 13, 2015 09:36 am |
|
Steven DAprano |
Mar 14, 2015 06:04 am |
|
Marko Rauhamaa |
Mar 14, 2015 07:54 am |
|
Mark Lawrence |
Mar 14, 2015 08:04 am |
|
Ian Kelly |
Mar 14, 2015 08:14 pm |
|
Mark Lawrence |
Mar 14, 2015 08:31 pm |
Re: generator/coroutine terminology |
Rustom Mody |
Mar 15, 2015 04:15 am |
|
Marko Rauhamaa |
Mar 14, 2015 08:30 am |
|
Rustom Mody |
Mar 14, 2015 03:29 pm |
|
Chris Angelico |
Mar 14, 2015 03:56 pm |
|
Rustom Mody |
Mar 14, 2015 03:59 pm |
|
Chris Angelico |
Mar 14, 2015 04:14 pm |
|
Rustom Mody |
Mar 14, 2015 04:33 pm |
|
Chris Angelico |
Mar 14, 2015 04:51 pm |
|
Dave Angel |
Mar 14, 2015 05:07 pm |
|
Mark Lawrence |
Mar 14, 2015 04:56 pm |
|
Rustom Mody |
Mar 14, 2015 05:17 pm |
|
Steven DAprano |
Mar 15, 2015 08:37 am |
|
Chris Angelico |
Mar 13, 2015 11:32 am |
|
Oscar Benjamin |
Mar 14, 2015 10:02 pm |
|
Marko Rauhamaa |
Mar 14, 2015 10:15 pm |
|
Chris Angelico |
Mar 14, 2015 10:24 pm |
|
Marko Rauhamaa |
Mar 15, 2015 12:15 am |
|
Chris Angelico |
Mar 15, 2015 12:22 am |
|
Steven DAprano |
Mar 16, 2015 01:03 am |
|
Marko Rauhamaa |
Mar 16, 2015 07:12 am |
|
Chris Angelico |
Mar 16, 2015 07:21 am |
|
Ian Kelly |
Mar 16, 2015 07:37 am |
|
Steven DAprano |
Mar 16, 2015 08:36 am |
|
Chris Angelico |
Mar 16, 2015 08:58 am |
|
Marko Rauhamaa |
Mar 16, 2015 12:32 pm |
|
Rustom Mody |
Mar 16, 2015 12:51 pm |
|
Marko Rauhamaa |
Mar 16, 2015 01:13 pm |
|
Steven DAprano |
Mar 16, 2015 02:32 pm |
|
Ian Kelly |
Mar 16, 2015 02:45 pm |
|
Steven DAprano |
Mar 16, 2015 01:39 pm |
|
Rustom Mody |
Mar 16, 2015 02:19 pm |
|
Mark Lawrence |
Mar 16, 2015 02:26 pm |
|
Steven DAprano |
Mar 16, 2015 02:35 pm |
|
Steven DAprano |
Mar 16, 2015 02:36 pm |
|
Rustom Mody |
Mar 16, 2015 02:37 pm |
|
Rustom Mody |
Mar 16, 2015 02:55 pm |
|
Mark Lawrence |
Mar 16, 2015 06:19 pm |
|
Rustom Mody |
Mar 17, 2015 02:52 am |
|
Mark Lawrence |
Mar 17, 2015 03:07 am |
|
Rustom Mody |
Mar 17, 2015 03:18 am |
|
Ian Kelly |
Mar 16, 2015 02:52 pm |
|
Marko Rauhamaa |
Mar 16, 2015 03:09 pm |
|
Ian Kelly |
Mar 16, 2015 03:26 pm |
|
Marko Rauhamaa |
Mar 16, 2015 04:05 pm |
|
Steven DAprano |
Mar 16, 2015 11:51 am |
|
Chris Angelico |
Mar 16, 2015 01:16 pm |
|
Marko Rauhamaa |
Mar 16, 2015 07:52 am |
|
Steven DAprano |
Mar 16, 2015 12:02 pm |
|
Jonas Wielicki |
Mar 16, 2015 12:39 pm |
|
Marko Rauhamaa |
Mar 16, 2015 12:42 pm |
|
Marko Rauhamaa |
Mar 16, 2015 07:40 am |
|
Steven DAprano |
Mar 16, 2015 11:59 am |
|
Marko Rauhamaa |
Mar 15, 2015 12:48 am |
|
Chris Angelico |
Mar 15, 2015 02:02 am |
|
Terry Reedy |
Mar 12, 2015 08:11 pm |
|
Mark Lawrence |
Mar 17, 2015 03:55 am |
|
Albert van der Horst |
Mar 31, 2015 12:57 pm |
|
Albert van der Horst |
Mar 31, 2015 01:18 pm |
|
Dave Angel |
Mar 31, 2015 01:38 pm |
|
Steven DAprano |
Apr 03, 2015 06:02 am |
|
Paul Rubin |
Apr 03, 2015 06:46 am |
|
Albert van der Horst |
Mar 31, 2015 03:03 pm |
|
Chris Angelico |
Mar 31, 2015 03:36 pm |
|
Rustom Mody |
Mar 17, 2015 03:33 am |
|
Mark Lawrence |
Mar 17, 2015 03:25 am |
|
Marko Rauhamaa |
Mar 12, 2015 08:22 pm |