[PYTHON MATRIX-SIG] A problem with slicing

Jim Fulton, U.S. Geological Survey jfulton@usgs.gov
Thu, 14 Sep 1995 11:13:03 -0400


On Thu, 14 Sep 1995 10:55:32 -0400 
Guido van Rossum said:
> > The only *minor* change proposed, which I could live without is to
> > allow the "," to generate tuples inside of []s, just as it does
> > outside of [].  In fact, I view the current non-recognition of tuples
> > in []s as an inconsistency.  For example:
> [...]
> > so why isn't:
> > 
> >   a[1,2,3]
> > 
> > equivalent to:
> > 
> >   a[(1,2,3)]
> 
> Because there's also
> 
>     a[1:2]
> 
> while there is no equivalent
> 
>     a(1:2)
> 
> I could either tweak the priorities so that
> 
>     a[1,2:3,4]
> 
> is parsed as
> 
>     a[(1,2) : (3,4)]

Can't be, ":" wants integers.

> or so that it is parsed as
> 
>     a[1, (2:3), 4]

Can't be, (2:3) is not a valid expression, so it can't yield a valid
element of the tuple.

> but neither appears very natural to me.

Good. :-)

> I guess my problem is that ":" and "," have "fuzzy" priorities, and
> while everybody agrees that e.g. "*" binds tighter than "+", if you
> ask a few people in the street, or even computer programmers, you'd
> get confused answers.

But ":" only makes sense for sequences and "," only makes sense for
mappings, so ":" and "," should never appear together in []s.  I don't
think this is a precedence issue.  I see your point that ":"
complicates things a bit.  You not only have to recognize ",", but you
have to make sure that it is not used in conjunction with ":".

Jim


=================
MATRIX-SIG  - SIG on Matrix Math for Python

send messages to: matrix-sig@python.org
administrivia to: matrix-sig-request@python.org
=================