Converting the operand to the form used by ;.0 : BoxAccTo =: (<;.0~ ,."1) (,.~ |.!.0@(+/\))
11 12 13 14 15 BoxAccTo 3 0 2 +--------++-----+ |11 12 13||14 15| +--------++-----+ +/ #@> 11 12 13 14 15 BoxAccTo 3 0 2 5 Henry Rich > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Leigh > J. Halliwell > Sent: Thursday, April 19, 2007 8:02 PM > To: 'Programming forum' > Subject: [Jprogramming] Boxing Data > > Dear J Forum: > I want to box a vector of numbers and want to box according to another > vector that tells how many to put in the boxes. For example, > 11 12 13 14 15 > BoxAccTo 3 0 2 means (11 12 13); ace; (14 15). It's > important that zeroes > produce empty boxes. Also, +/ of the second vector must > equal # of the > first. > I've created a tacit function that does the job. However, I > suspect that > it's inefficient. In particular, it doesn't use the cut > primitive (;), > because cut doesn't like boxing 0 elements. So I hope that > you can come up > with simpler, more efficient tacit functions. Thanks. > Sincerely, > Leigh > > ---------------------------------------------------------------------- > For information about J forums see > http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
