I think you mean (i.#p) p}p . p=: 8?8 1 p}p 1 1 1 1 1 1 1 1 (i.#p) p}p 2 3 4 6 5 1 7 0 /: p 2 3 4 6 5 1 7 0
That is one of the APL circumlocutions, p[p]←⍳⍴p. The relative timings of /:p vs. (i.#p) p}p is left as an exercise for the reader. :-) ----- Original Message ----- From: Zsbán Ambrus <[email protected]> Date: Sunday, May 1, 2011 13:29 Subject: Re: [Jprogramming] A permutation of i.y To: Programming forum <[email protected]> > On Sun, May 1, 2011 at 10:10 PM, Ian Clark > <[email protected]> wrote: > > I was well aware of the properties of grade-up (⍋) -- after > all it > > returns a rearrangement to the ordered list, ie inverts the > > rearrangement -- but didn't use it because it did a sort, preferring > > to use iota (⍳) --c/f (i.). > > > > I note your point that we have much better sorts nowadays... > > > > ] p=: 8?8 > > 6 0 1 7 2 3 5 4 > > I=: i.8 > > p i. I NB. invert p > > 1 2 4 5 7 6 0 3 > > /:p NB. ditto > > 1 2 4 5 7 6 0 3 > > Don't forget that there's a third solution, which could be > better than > either of the search and the sort: > > l p} p > 1 2 4 5 7 6 0 3 > > Ambrus ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
