From: utzoo!decvax!cwruecmp!honton
Newsgroups: net.lang.apl
Title: Indexing
Article-I.D.: cwruecmp.445
Posted: Fri Jan 28 17:39:14 1983
Received: Sat Jan 29 06:29:12 1983

  In working with apl for an extended period of time I find the indexing
operations inconsistent with the rest of the language.  What goes on is more
than what meets the I.
  In trying to come up with something better, I thought about an indexing
operator like the following:

	V _ I .lh A

with a default of indexing the last axis.  You could index the first axis by
specifying an axis and you could apply the indexing function several times:

	V _ I1 .lh [ 1 ] A	(meaning V _ A[ I1; ])

	V _ I1 .lh I2 .lh A	(meaning V _ A[ I1; I2 ])

  The real problem with this, and the problem which current indexing causes
is when the indexing occurs to the left of an assignment.  We could try to
do something with parenthesis;

	(I .lh A) _ V

but this is awkward and may be impossible to implement.  An alternative
is another operator:

	A _ I .rh V		(meaning A[I] _ V)

  This still seems a little backwards.   But maybe indexing is by nature
backwards.  I invite comments and suggestions on this idea.

  What is nice about using the left and right hook for indexing is that
they fit in well with SCTC's proposed extended arrays.  (Left hook for
disclosing, Right hook for enclosing.)

					chas
					  (..decvax!cwruecmp!honton)