Newsgroups: comp.lang.apl
Path: watmath!watserv2.uwaterloo.ca!mach1!torn!cs.utexas.edu!uunet!haven.umd.edu!socrates!socrates!rockwell
From: rockwell@socrates.umd.edu (Raul Deluth Miller-Rockwell)
Subject: Re: Selective assignment (was Re: J is NOT APL)
In-Reply-To: rockwell@socrates.umd.edu's message of Fri, 29 Jan 1993 19:13:07 GMT
Message-ID: <ROCKWELL.93Jan29150712@socrates.umd.edu>
Sender: rockwell@socrates.umd.edu (Raul Deluth Miller-Rockwell)
Reply-To: moth@firefly.com
Organization: Traveller
References: <1993Jan23.113019.23895@fid.morgan.com> <C1EIJn.I3@quadsys.com>
	<1993Jan26.184600.24394@csi.jpl.nasa.gov>
	<1993Jan27.094037.13820@csus.edu>
	<1993Jan27.221845.11152@csi.jpl.nasa.gov>
	<ROCKWELL.93Jan29141307@socrates.umd.edu>
Date: Fri, 29 Jan 1993 20:07:12 GMT
Lines: 21

More on the subject of doing "amend" without the restrictions of "}"
on index calculations.  [The restriction is: you are limited to
functions applying to global values and/or the amending data, or you
must use explicit evaluation.  In other words, it's akward using
tacitly expressed values.]

With numeric information, you can do quite a lot with 0, 1, addition,
and multiplication: arbitrary permutations, mix and match selectivity,
whatever.  In assembly language [and C, to a lesser extent], you could
get away with this sort of manipulation (multiplication by 0 and 1,
addition by 0 -- generally in the form of "and", "or", or "branch"
instructions) with arbitrary objects.  Unfortunately, these techniques
do not currently apply to character or boxed data.

However, there are a variety of selection and permutation techniques
that do apply to any class of data.  For example, I have gotten a lot
of mileage out of concatenating two lumps of data together, then
indexing from that intermediate result.

Raul

