If you want a purely tacit version of ms1, here's an approach which is not too atrocious:
ms1t=: ((2 _3 1 p.]) * %/@:-&1 3...@[) (] , %:@(+ (* -.))) <:@] * 2 >:@%...@-~ [ That said... I think this should be written using a word for mean and another for standard deviation. Lumping everything together like this bothers me. I can see having the word for standard deviation preserve the mean value, since it must be calculated as an intermediate result. But I think mean deserves a word of its own. Also, note that I did not get rid of one of the %/ operations. This means that the left argument must be treated with rank 0, or the resulting numbers will be invalid. (That said, using , like this, when composing the result does not lend itself well to argument ranks other than zero) -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
