NB. Explain behavior of

    r =: [: |. 3 $ |.

    NB. Compare steps for r 0 1 with steps for r i. 2 3 4 .

    NB. First

    r 0 1
1 0 1

    NB. What happens is

    |. 0 1  NB. Reverse 0 1
1 0
    3 $ 1 0  NB. Select from 1 0 1 0 1 0 ... until 3 have been chosen
1 0 1
    |: 1 0 1  NB. Reverse 1 0 1
1 0 1

    NB. Now look at

    i. 2 3 4  NB. Items are two 3 by 4 arrays, think array0 and array1
  0  1  2  3
  4  5  6  7
  8  9 10 11

12 13 14 15
16 17 18 19
20 21 22 23

    NB. When we do r i. 2 3 4 what happens is

    |. i. 2 3 4  NB. Reverse the two arrays
12 13 14 15
16 17 18 19
20 21 22 23

  0  1  2  3
  4  5  6  7
  8  9 10 11
    3 $ |. i. 2 3 4  NB. Select 3 from array1 array 0 array 1 array 0 ...
12 13 14 15
16 17 18 19
20 21 22 23

  0  1  2  3
  4  5  6  7
  8  9 10 11

12 13 14 15
16 17 18 19
20 21 22 23
    |. 3 $ |. i. 2 3 4  NB.  reverse the selected arrays
12 13 14 15
16 17 18 19
20 21 22 23

  0  1  2  3
  4  5  6  7
  8  9 10 11

12 13 14 15
16 17 18 19
20 21 22 23

    NB. Thus,

    r i. 2 3 4
12 13 14 15
16 17 18 19
20 21 22 23

  0  1  2  3
  4  5  6  7
  8  9 10 11

12 13 14 15
16 17 18 19
20 21 22 23


On 11/22/2011 8:54 PM, Linda Alvord wrote:
> Here's a simple translation, but both it and the original have the same
> peculiarities.
>
>     ranks =: 3 : '3$&.|.y'
>     ranks
> 3 : '3$&.|.y'
>
>     ranks2 =: 13 : '3$&.|.y'
>     ranks2
> 3 $&.|. ]
>
>     r=: 13 :'|.(|. 3) $|.y'
>     r
> [: |. 3 $ |.
>
>      5!:4<'ranks'
>        -- 3
> - : -+- ,:'3$&.|.y'
>
>     5!:4<'ranks2'
>    -- 3
>    │      -- $
> --+-&. -+- |.
>    L- ]
>
>     5!:4<'r'
>    -- [:
>    +- |.
> --+    -- 3
>    L----+- $
>         L- |.
>
>     ranks 2
> 2 2 2
>     ranks 2 3
> 3 2 3
>    ranks i.2 3 4
> 12 13 14 15
> 16 17 18 19
> 20 21 22 23
>
>   0  1  2  3
>   4  5  6  7
>   8  9 10 11
>
> 12 13 14 15
> 16 17 18 19
> 20 21 22 23
>
>
>
>    r 2
> 2 2 2
>    r 2 3
> 3 2 3
>     r i.2 3 4
> 12 13 14 15
> 16 17 18 19
> 20 21 22 23
>
>   0  1  2  3
>   4  5  6  7
>   8  9 10 11
>
> 12 13 14 15
> 16 17 18 19
> 20 21 22 23
>
> I have't followed some of the later ways to find rank.  My question is what
> happened here. It seemed like a simple J expression.
>
> Thanks
>
> Linda
>
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Kip Murray
> Sent: Monday, November 21, 2011 6:40 AM
> To: Programming forum
> Subject: Re: [Jprogramming] 21 November ranks challenge in Simple J
>
> It is 21 November, solutions are welcome.
>
> On 11/18/2011 11:33 AM, Kip Murray wrote:
>> Please wait until Monday 21 November to post solutions.
>>
>>    From the Rank u"n page in the Vocabulary:
>>
>> The verb u"n applies u to each cell as specified by the rank n . The
>> full form of the rank used is 3$&.|.n . For example, if n=:2 , the three
>> ranks are 2 2 2 , and if n=: 2 3, they are 3 2 3 .
>>
>> The challenge: rewrite verb
>>
>>       ranks =: 3 : '3$&.|.y'
>>
>> using a train with no conjunctions.
>>
>>       ranks 2
>> 2 2 2
>>       ranks 2 3
>> 3 2 3
>>
>> ----------------------------------------------------------------------
>> 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

Reply via email to