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 <erl...@erlinghellenas.se> 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 <tk...@tkxue.org> wrote: >> >> Subject: [Jprogramming] i. (2 2 $ 1 2 3 4) >> To: programm...@jsoftware.com >> 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