On Sun, 23 Mar 2014 02:46:28 -0000, Ian Kelly <ian.g.ke...@gmail.com>
wrote:
On Sat, Mar 22, 2014 at 6:32 PM, Rhodri James <rho...@wildebst.org.uk>
wrote:
On Sat, 22 Mar 2014 05:26:26 -0000, Rustom Mody <rustompm...@gmail.com>
wrote:
Well almost...
Except that the 'loop' I am talking of is one of
def loop():
return [yield (lambda: x) for x in [1,2,3]]
or
return (yield (lambda: x) for x in [1,2,3])
or just plain ol
(lambda x: for x in [1,2,3])
IOW loop is an imperative construct, comprehensions are declarative
I'm sorry, you've made a logical leap too far here. I understand loops
being imperative, but how are comprehensions declarative? What do they
declare that the loop equivalent doesn't.
I'm with Rustom on this point. A list comprehension is a syntax for
building a list by declaring a transformation from some other iterable
object. Forget comprehensions for a moment and think of literals.
Would you not consider this to be declarative?
x = [1, 2, 3]
I'm not sure I would. I look at that line of code and think of it as
"Create a list...", very much in an imperative manner. Then again,
compared with C structs and typedefs and actual honest-to-God type
declarations, there's precious little in Python I would consider truly
declarative.
--
Rhodri James *-* Wildebeest Herder to the Masses
--
https://mail.python.org/mailman/listinfo/python-list