This seems like an unusual design decision: (t 3 3) -: t 3 3 3 3 3 1
-- Raul On Wed, Jan 4, 2017 at 12:57 AM, robert therriault <[email protected]> wrote: > 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
