On Thu, Nov 29, 2018 at 10:14 PM E. Madison Bray <erik.m.b...@gmail.com> wrote: > P.S. > > > > This is necessary because if I have a function that used to take, say, > > > a list as an argument, and it receives a `map` object, I now have to > > > be able to deal with map()s, > > > > If a function is documented as requiring a list, or a sequence, or a > > length object, it is a user bug to pass an iterator. The only thing > > special about map and filter as errors is the rebinding of the names > > between Py2 and Py3, so that the same code may be good in 2.x and bad in > > 3.x. > > It's not a user bug if you're porting a massive computer algebra > application that happens to use Python as its implementation language > (rather than inventing one from scratch) and your users don't need or > want to know too much about Python 2 vs Python 3. Besides, the fact > that they are passing an iterator now is probably in many cases a good > thing for them, but it takes away my ability as a developer to find > out more about what they're trying to do, as opposed to say just being > given a list of finite size.
If that's the case, then it should be no problem to rebind builtins.map to return a list. Problem solved. ChrisA _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/