Ok, yes - rank is itself a rank zero array. Empty shape, zero rank.
Thanks, -- Raul On Tue, Dec 19, 2017 at 2:11 PM, Jimmy Gauvin <[email protected]> wrote: > not empty rank rather o rank > > On Tue, Dec 19, 2017 at 2:01 PM, Raul Miller <[email protected]> wrote: > >> An empty tank zero array would be inconsistent. >> >> The number of elements in an array is the product of its dimensions, and >> the multiplicative identity is 1, not 0. >> >> Thanks, >> >> -- >> Raul >> >> On Tuesday, December 19, 2017, Jimmy Gauvin <[email protected]> >> wrote: >> >> > Hi, >> > >> > Thinking about nothing, specifically about the empty scalar or empty >> > 0-cell. >> > >> > Erling H. - " I experience an inconsistency in this model in the sense >> > that an array of rank greater than zero can be empty, a 0-cell can not." >> > >> > The internal structure of a J array could support a rank 0 empty object. >> > However, short of poking into memory, there does not seem to be a way of >> > generating an empty scalar. >> > >> > ┌───────┬─┬───────┬─┬─┬─────┬───┐ >> > │data │ │type │n│r│shape│val│ >> > ├───────┼─┼───────┼─┼─┼─────┼───┤ >> > │8 │ │integer│1│0│ │8 │ >> > ├───────┼─┼───────┼─┼─┼─────┼───┤ >> > │8 9 │ │integer│2│1│2 │8 9│ >> > ├───────┼─┼───────┼─┼─┼─────┼───┤ >> > │'' │ │literal│0│1│0 │ │ >> > ├───────┼─┼───────┼─┼─┼─────┼───┤ >> > │0$0 │ │boolean│0│1│0 │ │ >> > ├───────┼─┼───────┼─┼─┼─────┼───┤ >> > │0$8 │ │integer│0│1│0 │ │ >> > ├───────┼─┼───────┼─┼─┼─────┼───┤ >> > │0 0 0$8│ │integer│0│3│0 0 0│ │ >> > ├───────┼─┼───────┼─┼─┼─────┼───┤ >> > │(0$0)$8│ │integer│1│0│ │8 │ >> > └───────┴─┴───────┴─┴─┴─────┴───┘ >> > n = number of values >> > r = rank >> > >> > NB. Trying to get n=0 and r=0 >> > >> > (0$0) $ (0$0) >> > |length error >> > | (0$0) $(0$0) >> > (0$0) $ '' >> > |length error >> > | (0$0) $'' >> > >> > >> > >> > >> > >> > On Tue, Dec 19, 2017 at 4:28 AM, Erling Hellenäs < >> [email protected] >> > > >> > wrote: >> > >> > > Hi all ! >> > > >> > > In APL we had the same array model as in Fortran. An array was an array >> > > and you indexed it like in most other languages, except that you could >> > use >> > > an array as index and therefore could get very varying results. The >> only >> > > problems I personally experienced with this model was that you could >> not >> > > put all the indexes in one variable. I also wanted to have the index to >> > the >> > > left. To keep the right-to-left normal flow of the language. I wrote >> > > special indexing functions to handle this, but never used them in >> > > production. >> > > >> > > In J we have the n-cell array model. A difference is that a scalar is >> > just >> > > another array, it just is imagined as having zero dimensions. I APL >> there >> > > were scalars and there were arrays, basically two different data >> > > structures. I experience an inconsistency in this model in the sense >> that >> > > an array of rank greater than zero can be empty, a 0-cell can not. At >> > least >> > > in the interpreter I wrote, there is a lot of special handling of >> 0-cells >> > > because they actually have content, although there are no array >> > dimensions >> > > which could reasonably contain any such content. >> > > >> > > In the dyadic rank operator a k-cell without any zero dimension can be >> > > empty because a containing array is. This causes the very particular >> > > special handling I mentioned in the thread "[Jprogramming] i. (2 2 $ 1 >> 2 >> > 3 >> > > 4)" >> > > >> > > Simplicity is important for performance, it is important for our >> ability >> > > to predict the behaviour of the code without testing it in the terminal >> > and >> > > to limit the number of test cases needed to verify the functonality of >> a >> > > program. >> > > >> > > Is there any documentation of the design decision to select the n-cell >> > > array model? >> > > >> > > Are there any threads in the forum where this array model is discussed? >> > > >> > > Maybe someone also wants to share their knowledge from internal >> > > discussions about this design decision. >> > > >> > > Cheers, >> > > >> > > Erling Hellenäs >> > > >> > > ---------------------------------------------------------------------- >> > > 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
