On Oct 20, 2011, at 9:37 PM, Roger Hui wrote: >> The object on which verbs operate, that is, a noun, can be either an array, >> or a scalar. > >> So a noun is either a scalar or an array. > > But a scalar is an array. See > http://www.jsoftware.com/jwiki/Essays/Scalars (cited before). > > "Noun" is taken in the sense that it is used in lots of documents, > where it means "array".
Thanks for the reminder on that link. Given those discussions, even though it seems counter-intuitive, I stand corrected. A scalar (aka element) is a zero-rank array. A vector (aka list) is a one-rank array. A matrix (aka table aka "array") is a two-rank array. The confusion comes from the ambiguous, everyday usage of "array" versus the more exact APL/J definition, which I'll call "Array". Using "noun" to mean Array is less confusing, but if someone then forgets (as I did) that Array means more than just a 2-rank array, the confusion returns anyway. J is hard enough as it is, but "array" having the everyday meaning alongside the APL/J meaning (Array) is really quite confusing to explain. Perhaps we should all use more caution in how we reference rank-2 objects? To avoid confusion entirely, perhaps we should Use "matrix" or "table" to reference the 2-rank objects (instead of "array"), and use "noun" to mean the more general, any-rank object? BTW, the data warehouse/business intelligence field calls a multi-dimensional (rank-3 or more) object a "cube". ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
