It's a paradox only if you consider consistency to be paradoxical - which it is for most programming languages.
Consider that a 2-dimensional array can be extended along 2 axes: a2=. 1 1$1 a2;(a2,1);a2,.1 +-+-+---+ |1|1|1 1| | |1| | +-+-+---+ Analogously, a 1-dimensional array can be extended only along 1 axis: a1=. 1$1 a1;(a1,1);a1,.1 +-+---+---+ |1|1 1|1 1| +-+---+---+ Finally, a 0-dimensional array cannot be extended along any axis because it does not have any axes. When it is concatenated with something, it is no longer a scalar (0-dimensional array). Another way of putting this is that the result of $ is always a vector: for a 2-dimensional array, it is a vector of length 2; for a 1-dimensional array it is a vector of length 1; and for a 0-dimensional array it is a vector of length 0. The usefulness of this consistency can be seen by understanding that we can predict the shape of 2 arrays compared orthogonally (all elements to all elements) by simply adding the shapes of the 2 arrays: $(2 3 4$1) =/ 5 6$1 2 3 4 5 6 #$((5$1)$1) =/ (2$1)$1 NB. 5+2 = 7 7 #$((5$1)$1) =/ (1$1)$1 NB. 5+1 = 6 6 #$((5$1)$1) =/ (0$1)$1 NB. 5+0 = 5 5 1-:(0$1)$1 1 On 10/24/06, Miller, Raul D <[EMAIL PROTECTED]> wrote:
Pascal Jasmin wrote: > why the shape of an atom isn't 1 is the paradox :) --
Devon McCormick ^me^ at acm. org is my preferred e-mail ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
