in reply to Spiraling integers

to write a program (in any language)

Would it offend the dear monks if I posted a program in J then? I hope no. (Even though you say any language, that's for the original question, ant this is perlmonks.)

Here's the program:

spiral =: 3 : 0 >: (,~ y.) $ (i. *: y.) i.~ /: ,/ (-@>.&| , -@{:@*.@(1j_1&*)@j.)"0/~ ( +i. y.) - -:<: y. ) 2!:55[0[ 1!:2&2 spiral 5".>{: ARGV

To run it,

  1. first get a J User Licence by filling this form;
  2. download J;
  3. set it up by the instructions in readme.txt (comes with the download);
  4. save the above code as spiral.ijs (don't break the long line);
  5. and run jconsole spiral.ijs 5 (5 is an integer giving the spiral size, defaults to 5).
(You can of course skip the first four steps if you have already done them.)

Update 2007 dec 7: better definition for the spiral function is

spiral =: - ]\ i.@:*: [`]`[} [: \: [: ,/ [: (>.&| , 12&o.@(1j_1&*)@j.) +"0/~ i. - -:@:<:

Replies are listed 'Best First'.
Re^2: Spiraling integers
by Anonymous Monk on Nov 07, 2008 at 18:27 UTC
    You don't to get a user license any more to use J...