
On 28 agu 2008 at 22:37:20, Terry Reedy <tjreedy@udel.edu> wrote:
To parallel the Haskell-ish example, this should be
[stripped for l in text.split('/n') stripped as l.strip() if stripped != '']
but the clause has 'as' in the middle instead of at the beginning, making it hard to parse. Haskell used commas
[stripped for l in text.split('/n'), stripped as l.strip(), if stripped != '']
but I think this would conflict with Python's other comma usage. Most feasible, I think, would be
[stripped for l in text.split('/n') with stripped as l.strip() if stripped != '']
This corresponds to the multi-statement for loop version
_=[] for l in text.split('\n'): stripped = l.strip() if stripped != '': _.append(stripped)
with 'stripped = l.strip()' replaced by 'with stripped as l.strip()'. If other use cases were presented that could not be more easily written otherwise, as with the re.split() version, I might at least be neutral on this.
Terry Jan Reedy
We already a "with Expression as Identifier" syntax that is well known and used in Python: why use something different? [stripped for l in text.split('\n') with l.strip() as stripped if stripped != ''] will be a much better syntax to parse and acquire for a typical pythonista. ;) Cheers, Cesare