Short answer: The rank of the noun determines the items, the rank of the verb determins the cells.
Every noun can be thought of as a "list of something". For example, a vector (a 1 dimensional noun) is a list of scalars, a table (2D) is a list of vectors, a cube (3D) is a list of tables, and so on. The items of a noun are whatever it's a list of. The items of a vector are scalars, the items of a table are vectors, the items of a cube are tables, and so on. Any verb can be limited to a certain rank of noun. That is, it can be impossible for a verb to see a noun of higher than a specific rank. For example, + can only see scalars, because list+list makes no sense: only scalars can be added. So, no matter how hard you try, + will only ever see a scalar at a time. The highest rank of noun a certain verb can see is a "cell" for that verb. Of course, you can feed a verb a higher ranked argument, in which case there will be more than one cell, but the verb will still only see one cell at a time. That's why list+list does work: it's operating piecewise, adding a scalar at a time. A verb can have infinite (unbound) rank, in which case ANY argument will only have one cell. Think of the monad < (box), for example. No matter what argument you give it, it treats that argument as an indivisible whole, and returns it in a box. A verb can also define its cells in terms of the rank of the noun, so, for example, "_1 means "operate on rank one less than the argument", which means "treat the argument like a list of cells", which means "operate on the items of the argument". So, in the special case of a verb "_1 , the items and the cells are the same. Does that clarify? -Dan ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
