exar...@twistedmatrix.com wrote:
On 02:12 am, pavlovevide...@gmail.com wrote:
On Aug 16, 3:35�pm, sturlamolden <sturlamol...@yahoo.no> wrote:
On 16 Aug, 14:57, Dennis Lee Bieber <wlfr...@ix.netcom.com> wrote:

> � � � � Well, the alternative would be to have two keywords for looping: one > for your "simple" incrementing integer loop, and another for a loop that
> operates over the elements of some collection type.

A compiler could easily recognise a statement like

� �for i in range(n):

as a simple integer loop.

It would be a simple to do if you were writing it for a different
langauge was a lot less dynamic than Python is.  It'd be quite a
complex hack to add it to CPython's compiler while maintaing the
current highly dynamic runtime semantics and backwards compatibility,
which is a design constraint of Python whether you like it or not.

In your other message, you said this wasn't a legitimate CPython complaint. Here, you say that it would be a "complex hack" to implement this in CPython. "complex hack" has negative connotations in my mind. This seems contradictory to me.

And all this complaining about an issue that can be worked around by
xrange instead of range.  Sheesh.

Sure. The specific issue of range vs xrange is quite a small one. There is a slightly larger one regarding the flexibility (or relative lack thereof) of the CPython runtime, though.

A possible solution would be to make 'range' return an instance of, say,
'RangeList', a subclass of list which would behave like 'list'
externally but create the list of values internally only when needed.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to