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

Reply via email to