
Mathias Panzenböck wrote:
Marcin 'Qrczak' Kowalczyk schrieb:
2008/8/28 Cesare Di Mauro <cesare.dimauro@a-tono.com>: [stripped | l <- text.split('\n'), let stripped = l.strip(), stripped != '']
Python borrowed 2 out of 3 kinds of list comprehension constructs.
so maybe?
[stripped for l in text.split('\n') if stripped != '' let stripped = l.strip()]
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