I was looking at the ranks of primitives and was wondering if there was a 
particular justification for the rank of monadic i: (Steps) being 0. In fact, I 
began this by looking at monadic #: (Antibase 2) and wondering why its rank was 
_ .  Both verbs seem to act on their arguments in similar ways, creating a 
vector from a single atom input.

    #: b. 0 NB. monadic - left dyadic - right dyadic ranks
_ 1 0
   i: b. 0
0 _ _

    #:  9 
1 0 0 1
   i:  9 
_9 _8 _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 8 9


It is only when you look at how they operate in higher dimensions that you see 
the differences in the way padding is applied to results of different lengths.

    #: 1 2 4 8
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
   i: 1 2 4 8
_1  0  1  0  0  0  0  0 0 0 0 0 0 0 0 0 0
_2 _1  0  1  2  0  0  0 0 0 0 0 0 0 0 0 0
_4 _3 _2 _1  0  1  2  3 4 0 0 0 0 0 0 0 0
_8 _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 8 

The use of _ as the rank of monadic #: allows the result to know about its 
neighbours and padding can be done in such a way as to retain the positional 
meaning. Overriding to rank 0 provides an opportunity for a different result.

    #:"_ [ 1 2 4 8
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
   #:"0 [ 1 2 4 8
1 0 0 0
1 0 0 0
1 0 0 0
1 0 0 0 

Using 0 as the rank of monadic i: takes away the ability to change the padding 
because overriding to a rank of _ does not change the positioning.

    i:"0 [ 1 2 4 8
_1  0  1  0  0  0  0  0 0 0 0 0 0 0 0 0 0
_2 _1  0  1  2  0  0  0 0 0 0 0 0 0 0 0 0
_4 _3 _2 _1  0  1  2  3 4 0 0 0 0 0 0 0 0
_8 _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 8
   i:"_ [ 1 2 4 8
_1  0  1  0  0  0  0  0 0 0 0 0 0 0 0 0 0
_2 _1  0  1  2  0  0  0 0 0 0 0 0 0 0 0 0
_4 _3 _2 _1  0  1  2  3 4 0 0 0 0 0 0 0 0
_8 _7 _6 _5 _4 _3 _2 _1 0 1 2 3 4 5 6 7 8


Changing the rank of monadic i: would not be a priority for me, as it may break 
existing scripts and I don't see a large gain except for consistency, but are 
there other reasons for this that I may have missed? Also my anthropomorphized 
view of how the verbs work may be flawed and I would welcome corrections to my 
understanding.

Cheers, bob

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to