This issue is documented at http://www.jsoftware.com/help/dictionary/dictb.htm
Thanks, -- Raul On Wed, Dec 13, 2017 at 1:18 PM, Jose Mario Quintana <[email protected]> wrote: > Apparently, TongKe Xue got an answer to his question (and even more); but, > I have at least one of my own. > > The Dictionary is the official reference and the (vocabulary) entry for i. > ( http://www.jsoftware.com/help/dictionary/didot.htm ). reads in part: > > " > Integers i. 1 > > The shape of i.y is |y , and its atoms are the first */|y non-negative > integers. > " > > However, for the case at hand, > > Y=. 2 2 $ 1 2 3 4 > > $i.Y > 2 3 4 > > |Y > 1 2 > 3 4 > > This suggests to me that either the implementation is wrong or the > Dictionary is wrong (or at least too terse). Which one is wrong? > > My guess is that the Dictionary claim about the shape and contents of the > result is within the context of its rank (1). Why? Because for non-negative > integers, > > (i. -: (| $ i.@:(*/)@:|)("1))Y > 1 > > Let us try one more level up, > > Y=. 2 2 3 $ i.12 > > (i. -: (| $ i.@:(*/)@:|)("1))Y > 1 > > This identity would also explain the padding (according to the entry for > $). In addition, the fact that JWithATwist implementation produces the > same result (at least for Y=. 2 2 $ 1 2 3 4) suggests to me that the > implementation is correct. > > By default, I assume the Dictionary is right and I am wrong. Where did I > mess up? > > > On Wed, Dec 13, 2017 at 3:46 AM, Erling Hellenäs <[email protected]> > wrote: > >> Yes. >> >> (2 2 $ 1 2 3 4) >> 1 2 >> 3 4 >> i.1 2 >> 0 1 >> i.3 4 >> 0 1 2 3 >> 4 5 6 7 >> 8 9 10 11 >> (i.1 2),: i.3 4 >> 0 1 0 0 >> 0 0 0 0 >> 0 0 0 0 >> >> 0 1 2 3 >> 4 5 6 7 >> 8 9 10 11 >> i. (2 2 $ 1 2 3 4) >> 0 1 0 0 >> 0 0 0 0 >> 0 0 0 0 >> >> 0 1 2 3 >> 4 5 6 7 >> 8 9 10 11 >> >> I tried to describe this behavior in section "The Monadic Array Operation >> Helper Program" in this manual: >> >> https://github.com/andrimne/JWithATwist.DocBook/raw/master/ >> target/en/JWithATwistReferenceManual.pdf >> >> As far as my tests show J and JWithATwist behaves the same in this regard. >> >> I doubt you can find reasonably accurate descriptions of this >> functionality (these four helper programs) anywhere else. >> >> To understand J you have to understand this functionality, as I see it. It >> is essential in everything you do in J. >> >> Cheers, >> >> Erling Hellenäs >> >> >> >> Den 2017-12-13 kl. 00:34, skrev 'Jon Hough' via Programming: >> >>> The zero-padding is happening because i. acts on each row but returns >>> different shaped results for each row. >>> Try this: >>> i.&.> <"1[2 2 $ 1 2 3 4 >>> >>> This will give boxed results of the correct shape for each row. >>> >>> Another example of this kind of zero-padding is >>> q: 5 100000 >>> >>> q: will get the prime factors of each number. 5 only has one factor, >>> itself, whereas 100000 has many factors. J will zero pad >>> the result of q: 5 to match the shape of q: 100000. >>> >>> Doing something like this: >>> q:&.> <"0[ 5 100000 >>> >>> will give non-zero-padded results. The results are boxed. >>> >>> -------------------------------------------- >>> On Wed, 12/13/17, TongKe Xue <[email protected]> wrote: >>> >>> Subject: [Jprogramming] i. (2 2 $ 1 2 3 4) >>> To: [email protected] >>> Date: Wednesday, December 13, 2017, 7:49 AM >>> Hi, >>> I understand what (2 2 $ 1 2 3 >>> 4) does. >>> I understand what i. 1 2 does >>> I understand what i. 3 4 does. >>> I have read http://www.jsoftware.com/help/ >>> jforc/loopless_code_i_verbs_have_r.htm#_Toc191734331 >>> I understand the concept of >>> verb-rank, of frames + cells, of >>> "promoting one frame to another if they >>> share the same prefix." >>> I don't understand how the 0 >>> padding in >>> i. (2 2 $ 1 2 3 4) works >>> What is the mechanism by which >>> 0-padding is happening? >>> Thanks, >>> --TongKe >>> ==== >>> 2 2 $ 1 2 3 4 >>> 1 2 >>> 3 4 >>> i. 1 2 >>> 0 1 >>> i. 3 4 >>> 0 1 2 3 >>> 4 5 6 7 >>> 8 9 10 11 >>> i. (2 2 $ 1 2 3 4) >>> 0 1 0 0 >>> 0 0 0 0 >>> 0 0 0 0 >>> 0 1 2 3 >>> 4 5 6 7 >>> 8 9 10 11 >>> ---------------------------------------------------------------------- >>> 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
