At 10:48 PM 1/15/05 +0100, Simon Percivall wrote: >On 2005-01-15, at 18.06, Phillip J. Eby wrote: >>At 05:32 PM 1/15/05 +0100, Just van Rossum wrote: >>>Phillip J. Eby wrote: >>> >>> > >It's not at all clear to me that "sticky" behavior is the best >>> > >default behavior, even with implicit adoptation. Would anyone in >>> > >their right mind expect the following to return [0, 1, 2, 3, 4, 5] >>> > >instead of [0, 1, 2, 0, 1, 2]? >>> > > >>> > > >>> from itertools import * >>> > > >>> seq = range(10) >>> > > >>> list(chain(islice(seq, 3), islice(seq, 3))) >>> > > [0, 1, 2, 0, 1, 2] >>> > > >>> >>> > >>> > I don't understand why you think it would. What does islice have to >>> > do with adaptation? >>> >>>islice() takes an iterator, yet I give it a sequence. >> >>No, it takes an *iterable*, both practically and according to its >>documentation: > >But it _does_ perform an implicit adaptation, via PyObject_GetIter. First, that's not implicit. Second, it's not adaptation, either. PyObject_GetIter invokes the '__iter__' method of its target -- a method that is part of the *iterable* interface. It has to have something that's *already* iterable; it can't "adapt" a non-iterable into an iterable. Further, if calling a method of an interface that you already have in order to get another object that you don't is adaptation, then what *isn't* adaptation? Is it adaptation when you call 'next()' on an iterator? Are you then "adapting" the iterator to its next yielded value? No? Why not? It's a special method of the "iterator" interface, just like __iter__ is a special method of the "iterable" interface. So, I can't see how you can call one adaptation, but not the other. My conclusion: neither one is adaptation. > A list has no next()-method, but iter(list()) does. But a list has an __iter__ method, so therefore it's an iterable. That's what defines an iterable: it has an __iter__ method. It would only be adaptation if lists *didn't* have an __iter__ method.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4