[Python-ideas] Suggested MapView object (Re: __len__() for map())

E. Madison Bray erik.m.bray at gmail.com
Tue Dec 11 05:37:25 EST 2018

On Tue, Dec 11, 2018 at 2:16 AM Chris Barker <chris.barker at noaa.gov> wrote:
> On Mon, Dec 10, 2018 at 5:23 AM E. Madison Bray <erik.m.bray at gmail.com> wrote:
>> Indeed; I believe it is very useful to have a map-like object that is
>> effectively an augmented list/sequence.
> but what IS a "map-like object" -- I'm trying to imagine what that actually means.
> "map" takes a function and maps it onto a interable, returning a new iterable. So a map object is an iterable -- what's under the hood being used to create it is (and should remain) opaque.

I don't understand why this is confusing.  Greg gave an example of
what this *might* mean up thread.  It's not the only possible approach
but it is one that makes a lot of sense to me.  The way you're
defining "map" is arbitrary and post-hoc.  It's a definition that
makes sense for "map" that's restricted to iterating over arbitrary
iterators.  It's how it happens to be defined in Python 3 for various
reasons that you took time to explain at great length, which I regret
to inform you was time wasted explaining things I already know.

For something like a fixed sequence a "map" could just as easily be
defined as a pair (<function>, <sequence>) that applies <function>,
which I'm claiming is a pure function, to every element returned by
the <sequence>.  This transformation can be applied lazily on a
per-element basis whether I'm iterating over it, or performing random
access (since <sequence> is known for all N).

Python has no formal notion of a pure function, but I'm an adult and
can accept responsibility if I try to use this "map-like" object in a
way that is not logically consistent.

The stuff about Sage is beside the point.  I'm not even talking about
that anymore.

More information about the Python-ideas mailing list