On 7/6/2018 9:01 PM, Terry Reedy wrote:
any case, Python's comprehensions use an English-syntax version of
extended set builder notation. "In Python, the set-builder's
braces are replaced with square brackets, parentheses, or curly
braces, giving list, generator, and set objects, respectively.
Python uses an English-based syntax."
builder" is not much more expressive than "generator
I looked for an alternative 'x' to 'comprehension' such that
'generator|list|set|dict x' works and is specific to the notation.
'Builder' is a reasonable choice.
I'm not sure if your quote above was quoting documentation, or was a
suggested quote to add to the documentation, I think the latter, as
Google didn't find it.
The conflict between the "Builder pattern" and "set-builder
notation" can be disambiguated by consistently using the hyphenated
"set-builder" (as wikipedia does). And happily, by using wikipedia
terms, they would be easily found with explanations outside of
python docs as well as (if this is done) inside. We do not need
[ typ + ' builder' for typ in ('set', 'list', 'dict', 'generator')]
only set-builder. The fencing and : determine the type of the
result. We could use
[ typ + ' form of set-builder' for typ in ('set', 'list', 'dict',
in the few places where the type of the set-builder must be
disambiguated, avoiding the need for the compound terms.
The result of ( set-builder ) is a generator. We do not need the
term "generator expression" or "generator comprehension". Use
"generator form of set-builder"... yes, it is one or two syllables
longer, but is clearer.
A generator can be produced in one of two ways: either a function
containing a yield, or a set-builder delimited by parentheses or
used as an actual parameter to a function, both of which can be
referred to as the "generator form of set-builder".