You are right. I was thinking in terms of a numeric array left argument x in x m&v y , in which left rank 0 or left rank _ does not matter, including the efficiency question. (No side effects please.)
----- Original Message ----- From: Dan Bron <[EMAIL PROTECTED]> Date: Thursday, July 13, 2006 9:07 am Subject: Re: [Jbeta] Bond conjunction > Roger wrote: > > > x (m&v) y gives exactly > > the same results whether > > m&v has ranks 0 _ or _ _ > > Wrong. > > The phrase (3:`4:) m&v y has a meaningful interpretation if m&v > has rank _ _ _ . But if m&v has rank _ 0 _ then the phrase > is an error. > > Similarly, if m&v has rank _ 0 _ then (3;4) m&v y has a > meaningful interpretation, but with rank _ _ _ it is an error. > > Despite this congruence of errors, having m&v be rank _ _ _ is > preferable because it is trivial to a change verb with rank _ _ _ > into a verb with rank _ 0 _ , but not vice versa. > > Further, ignoring the semantics of m&v , there is an issue of > performance. The expression u^:vector can be optimized by > applying u a maximum of >./vector times. If ^: can only > see a scalar at a time, no such optimization is possible. > > That said, it appears that despite: > > 3&+ b. 0 > _ 0 _ > > the verb m&v is "really" rank _ _ _ : > > (3:`4:) 3&+ (12) > 13 > (3:`4:) 3&+"_ 0 _ (12) > |length error > | (3:`4:) 3&+"_ 0 _(12) > > (3 ;4 ) 3&+ (12) > |domain error > | (3;4) 3&+(12) > (3 ;4 ) 3&+"_ 0 _ (12) > 12 15 18 0 > 12 15 18 21 > > se =: 4 : 'noun =: >: noun' > 1 3 1 3 'a'& se noun =: 0 > 1 3 1 3 > 1 3 1 3 'a'& se"_ 0 _ noun =: 0 > 1 4 5 8 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
