Re: [Python-Dev] Naming comprehension syntax [was Re: Informal educator feedback on PEP 572 ...]

2018-07-15 Thread Chris Barker via Python-Dev
Thanks Nick,

I'll adopt this approach when I update my teaching materials.

If I think of it, I"ll post here when I do that

-CHB


On Sun, Jul 15, 2018 at 12:21 AM, Nick Coghlan  wrote:

> On 13 July 2018 at 15:30, Chris Barker via Python-Dev
>  wrote:
> > On Mon, Jul 9, 2018 at 3:18 PM, Guido van Rossum 
> wrote:
> >>
> >> Definitely docs first. And we should keep references to generator
> >> expressions too, if only to explain that they've been renamed.
> >>
> >> Perhaps someone should try it out in a 3rd party tutorial to see how it
> >> goes?
> >
> >
> > I'm not sure what "trying it out in a tutorial" would look like.
> >
> > I try to be pretty clear about terminology when I teach newbies -- so I
> > don't want to tell anyone this new thing is called a "generator
> > comprehension" if they aren't going to see that term anywhere else.
>
> Nina Zakharenko made the "they're officially called generator
> expressions, but I find it more helpful to think of them as generator
> comprehensions" observation in her PyCon 2018 presentation on "Elegant
> Solutions for Everyday Python Problems":
> https://www.slideshare.net/nnja/elegant-solutions-for-
> everyday-python-problems-pycon-2018/27
>
> The article from Ned Batchelder mentioned in that slide is this one,
> which goes through the history of Raymond originally proposing the
> notion as generator comprehensions, them getting changed to generator
> expressions during the PEP 289 discussions, and then asking if it
> might be worth going back to the originally suggested name:
> https://nedbatchelder.com/blog/201605/generator_comprehensions.html
>
> And then in PEP 572, it was found that being able to group all 4
> constructs (list/set/dict comps + generator expressions) under a
> single term was a genuinely useful shorthand:
> https://www.python.org/dev/peps/pep-0572/#scope-of-the-target
>
> So trying out the terminology in a tutorial context would be to do
> something similar to what Nina did in her talk: introduce the notion
> of list/set/dict/generator comprehensions, and then make a side note
> that the latter are officially referred to as "generator expressions".
>
> This wouldn't be the first time that terminology has differed between
> Python-as-commonly-taught and Python-as-formally-defined, as I've yet
> to hear anyone refer to container displays outside a language design
> discussion - everyone else calls them container literals (or, more
> typically, a literal for the specific builtin container type being
> discussed).
>
> In this case, though, we'd be considering eventually changing the
> language reference as well, and perhaps even some day the AST node
> name (from GeneratorExp to GeneratorComp).
>
> We wouldn't need to change anything in the grammar definition (since
> that already shares the comp_for and comp_if syntax definitions
> between container comprehensions and generator expressions), or the
> AST node structure (since GeneratorExp already uses a "comprehensions"
> attribute, the same as the ListComp/SetComp/DictComp nodes).
>
> Cheers,
> Nick.
>
> --
> Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
>



-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Naming comprehension syntax [was Re: Informal educator feedback on PEP 572 ...]

2018-07-15 Thread David Mertz
I've pretty much always taught using the "comprehension" term. It makes
sense to introduce comprehensions on concrete collections first. Then I
typically say something like "This special kind of comprehension is called
a 'generator expression'". Usually that's accompanied by a motivation like
creating a listcomp of a hundred million items, then showing that creating
the generator expression is instantaneous.

However, after the initial introduction, I consistently call it a generator
expression. Albeit, for the students I teach—data scientists and quants,
mostly—there's not a lot of time spent on that being the introduction (by
then I'm talking about NumPy and Pandas, and scikit-learn, and Seaborn, abd
Statsmodels, and so on. If things are "lazy" it's because they are Dask
deferred or Dask DataFrame.

On Sun, Jul 15, 2018, 1:02 PM Chris Barker via Python-Dev <
python-dev@python.org> wrote:

> Thanks Nick,
>
> I'll adopt this approach when I update my teaching materials.
>
> If I think of it, I"ll post here when I do that
>
> -CHB
>
>
> On Sun, Jul 15, 2018 at 12:21 AM, Nick Coghlan  wrote:
>
>> On 13 July 2018 at 15:30, Chris Barker via Python-Dev
>>  wrote:
>> > On Mon, Jul 9, 2018 at 3:18 PM, Guido van Rossum 
>> wrote:
>> >>
>> >> Definitely docs first. And we should keep references to generator
>> >> expressions too, if only to explain that they've been renamed.
>> >>
>> >> Perhaps someone should try it out in a 3rd party tutorial to see how it
>> >> goes?
>> >
>> >
>> > I'm not sure what "trying it out in a tutorial" would look like.
>> >
>> > I try to be pretty clear about terminology when I teach newbies -- so I
>> > don't want to tell anyone this new thing is called a "generator
>> > comprehension" if they aren't going to see that term anywhere else.
>>
>> Nina Zakharenko made the "they're officially called generator
>> expressions, but I find it more helpful to think of them as generator
>> comprehensions" observation in her PyCon 2018 presentation on "Elegant
>> Solutions for Everyday Python Problems":
>>
>> https://www.slideshare.net/nnja/elegant-solutions-for-everyday-python-problems-pycon-2018/27
>>
>> The article from Ned Batchelder mentioned in that slide is this one,
>> which goes through the history of Raymond originally proposing the
>> notion as generator comprehensions, them getting changed to generator
>> expressions during the PEP 289 discussions, and then asking if it
>> might be worth going back to the originally suggested name:
>> https://nedbatchelder.com/blog/201605/generator_comprehensions.html
>>
>> And then in PEP 572, it was found that being able to group all 4
>> constructs (list/set/dict comps + generator expressions) under a
>> single term was a genuinely useful shorthand:
>> https://www.python.org/dev/peps/pep-0572/#scope-of-the-target
>>
>> So trying out the terminology in a tutorial context would be to do
>> something similar to what Nina did in her talk: introduce the notion
>> of list/set/dict/generator comprehensions, and then make a side note
>> that the latter are officially referred to as "generator expressions".
>>
>> This wouldn't be the first time that terminology has differed between
>> Python-as-commonly-taught and Python-as-formally-defined, as I've yet
>> to hear anyone refer to container displays outside a language design
>> discussion - everyone else calls them container literals (or, more
>> typically, a literal for the specific builtin container type being
>> discussed).
>>
>> In this case, though, we'd be considering eventually changing the
>> language reference as well, and perhaps even some day the AST node
>> name (from GeneratorExp to GeneratorComp).
>>
>> We wouldn't need to change anything in the grammar definition (since
>> that already shares the comp_for and comp_if syntax definitions
>> between container comprehensions and generator expressions), or the
>> AST node structure (since GeneratorExp already uses a "comprehensions"
>> attribute, the same as the ListComp/SetComp/DictComp nodes).
>>
>> Cheers,
>> Nick.
>>
>> --
>> Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
>>
>
>
>
> --
>
> Christopher Barker, Ph.D.
> Oceanographer
>
> Emergency Response Division
> NOAA/NOS/OR&R(206) 526-6959   voice
> 7600 Sand Point Way NE   (206) 526-6329   fax
> Seattle, WA  98115   (206) 526-6317   main reception
>
> chris.bar...@noaa.gov
> ___
> Python-Dev mailing list
> Python-Dev@python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> https://mail.python.org/mailman/options/python-dev/mertz%40gnosis.cx
>
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com