On Thu, Nov 29, 2018 at 12:16 PM Chris Angelico <ros...@gmail.com> wrote: > > 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.
Rebind where? How? In sage.__init__? How do you think that will fly with other packages loaded in the same interpreter? _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/