On 8/14/2017 5:59 AM, Ben Finney wrote:

At what point will you accept the feedback: That the comprehension
syntax *does not* necessarily connote a procedural loop, but instead can
quite reasonably be interpreted as its designer intended, a single
conceptual operation.

In a world where functions have 'side-effects', which is to say, implicit inputs and outputs, procedural order is necessary for predictable outcomes. The 'single conception operation' is ambiguious.

Suppose stdin contains "a\nb\nc\nd\ne\nf\ng\n".
What is the meaning of
[input(f"response{i}") for i in range(6)]?
In Python, the predictable result is
['a', 'b', 'c', 'd', 'e', 'f']
It would not be with some of Rustom Mody's 'equivalents'.
Or let L = <list above>.
This implementation of list reversal: [L.pop() for i in range(len(L))]

Do not functional languages define comprehensions in terms of recursion, equivalent to for loops?

--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to