If i: were redefined with monadic rank 1 then this definition of t could be a
replacement for i:
t=: ({: +/&i: {.)`i:@.(1=#)
t 3
_3 _2 _1 0 1 2 3
t 3 3
_6 _5 _4 _3 _2 _1 0
_5 _4 _3 _2 _1 0 1
_4 _3 _2 _1 0 1 2
_3 _2 _1 0 1 2 3
_2 _1 0 1 2 3 4
_1 0 1 2 3 4 5
0 1 2 3 4 5 6
t 3 3j2
_6 _5 _4 _3 _2 _1 0
_3 _2 _1 0 1 2 3
0 1 2 3 4 5 6
t 3j2 3j2
_6 _3 0
_3 0 3
0 3 6
I am not sure how useful these patterns are, but this approach could give a
meaning to rank 1 arguments of length 2
Cheers, bob
> On Jan 3, 2017, at 8:38 PM, Raul Miller <[email protected]> wrote:
>
> The rank of i. is not zero, but it's difficult to see how a variant on
> i: could use that approach.
>
> If you get to messing with padding, you might also want to be messing
> with left/center/right alignment.
>
> That's all I can think of right now.
>
> --
> Raul
>
>
> On Tue, Jan 3, 2017 at 4:40 PM, robert therriault <[email protected]>
> wrote:
>> 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
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm