On Thu, Nov 6, 2008 at 02:04, Roger Hui <[EMAIL PROTECTED]> wrote:
>    ts 'p i. i.#p'
> 0.00602786 1.57363e6
>
> Compared to:
>>    ts '/:p'
>>  0.00611782 1.04922e6
>>     ts '(i.#p) p}p'
>>  0.0112338 1.57389e6

My story is actually this.  Back in 2005, someone asked an interesting
puzzle in "http://www.perlmonks.com/?node_id=487200";, which asked to
generate a certain spiral.  In the first solution I wrote
("http://www.perlmonks.com/?node_id=487238";), I used p i. i.#p to
generate the inverse of a permutation.  The original solution was
basically this (except that it had y. instead of y):

   spiral =: 3 : 0
>: (,~ y) $ (i. *: y) i.~ /: ,/ (-@>.&| , [EMAIL 
>PROTECTED]:@*.@(1j_1&*)@j.)"0/~ (i. y) - -:<: y
)
   spiral 5
 1  2  3  4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

Then, when I translated this to perl
("http://www.perlmonks.com/?node_id=487246";), I realized this, and
instead used the equivalent of ((i.#p) p} p).

Much later, in 2007, when this topic came up in the jprogramming list,
I rewrote my J solution to use ((i.#p) p} p) instead:
"http://www.jsoftware.com/pipermail/programming/2007-December/009009.html";.
 I also copied this back to the perlmonks thread.

Ambrus
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to