Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!think.com!zaphod.mps.ohio-state.edu!swrinde!elroy.jpl.nasa.gov!jato!kalessin!sam From: sam@kalessin.jpl.nasa.gov (Sam Sirlin) Newsgroups: comp.lang.apl Subject: Re: Reassignment in J Message-ID: <1991Jan10.180110.4244@jato.jpl.nasa.gov> Date: 10 Jan 91 18:01:10 GMT References: <15160009@hpdmd48.boi.hp.com> <1991Jan9.171347.19535@jato.jpl.nasa.gov> Sender: news@jato.jpl.nasa.gov Reply-To: sam@kalessin.jpl.nasa.gov (Sam Sirlin) Organization: Jet Propulsion Laboratory, Pasadena, CA Lines: 27 Nntp-Posting-Host: kalessin.jpl.nasa.gov In article , josh@klaatu.rutgers.edu (J Storrs Hall) writes: ... |> |> A =. X I} A |> |> (which is a bit more powerful than reassignment in that it allows you |> the option of computing the value without modifying A). |> |> --JoSH Thanks! I looked at merge, but the description is so obscure that I didn't see this simple application. I'm just beginning to understand the boxing necessary in I for indexing. It seems much more complicated than the indexing function from APL 75 (the model for this?). This way of changing values is also less powerful than reassignment, since a duplicate copy of the whole array must be created (unless the language recognizes the idom), which could take substantial memory and time. Of course this mainly affects slow machines with little memory. You also need more characters for both the indexing ( A[2;3] versus (<2;3){a ). and the copy of "A." -- Sam Sirlin Jet Propulsion Laboratory sam@kalessin.jpl.nasa.gov