Thank Pascal. Both yours and Bob' s solution are good, The performance are almost the same, because virtual block are used.
On Sun, May 24, 2020 at 10:46 PM 'Pascal Jasmin' via Programming < programm...@jsoftware.com> wrote: > > > to only "reduce" if rank 3 or higher, as Bob's version did > > ,/^:(2 -~ #@$)^:(3 <: #@$) i. 4 5 > > the advantage is only one comparison is needed if shape count is under 3, > and exactly 2 comparisons if more than 2. > > > > > > > > > ,/^:(2 -~ #@$) i. 1 2 3 4 5 > > > > > > > On Saturday, May 23, 2020, 11:36:20 p.m. EDT, 'robert therriault' via > Programming <programm...@jsoftware.com> wrote: > > > > > > Hi Bill, > > You could use this > > ,/^:(2< #@$)^:_ > > $ ,/^:(2< #@$)^:_ i. 5 > 5 > $ ,/^:(2< #@$)^:_ i. 4 5 > 4 5 > $ ,/^:(2< #@$)^:_ i. 3 4 5 > 12 5 > $ ,/^:(2< #@$)^:_ i. 2 3 4 5 > 24 5 > $ ,/^:(2< #@$)^:_ i. 7 2 3 4 5 > 168 5 > > although Roger or Pascal may have something more elegant. > > Cheers, bob > > > On May 23, 2020, at 20:09, bill lam <bbill....@gmail.com> wrote: > > > > Wow so simple! > > Thanks Roger, Pascal. > > > > Just curious, how to do rank-n to rank-2 > > where n>3 > > > > > > On Sun, May 24, 2020, 11:04 AM 'Pascal Jasmin' via Programming < > > programm...@jsoftware.com> wrote: > > > >> ,/ i. 3 4 5 > >> > >> > >> > >> > >> > >> > >> On Saturday, May 23, 2020, 10:56:02 p.m. EDT, bill lam < > >> bbill....@gmail.com> wrote: > >> > >> > >> > >> > >> > >> I had a problem similar to that of the recent shape question, > >> a=. i. 3 4 5 > >> to reshape to rank-2 array with trailing shape unchanged that is shape > 12 > >> 5, > >> This works but difficult to remember > >> (((*/@}: , {: )@: $) $ , ) i. 3 4 5 > >> 0 1 2 3 4 > >> 5 6 7 8 9 > >> 10 11 12 13 14 > >> 15 16 17 18 19 > >> 20 21 22 23 24 > >> 25 26 27 28 29 > >> 30 31 32 33 34 > >> 35 36 37 38 39 > >> 40 41 42 43 44 > >> 45 46 47 48 49 > >> 50 51 52 53 54 > >> 55 56 57 58 59 > >> > >> this can also work and easier to remember but Henry Rich said recently > >> that ]\ doesn't support virtual block yet. > >> _5 ]\ ,i. 3 4 5 > >> 0 1 2 3 4 > >> 5 6 7 8 9 > >> 10 11 12 13 14 > >> 15 16 17 18 19 > >> 20 21 22 23 24 > >> 25 26 27 28 29 > >> 30 31 32 33 34 > >> 35 36 37 38 39 > >> 40 41 42 43 44 > >> 45 46 47 48 49 > >> 50 51 52 53 54 > >> 55 56 57 58 59 > >> > >> Any suggestions of other ways to do it? > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > > > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > >> > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm