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,
- first get a
J User Licence by filling this form;
- download J;
- set it up by the instructions in readme.txt (comes with the download);
- save the above code as spiral.ijs (don't break the long line);
- 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. - -:@:<: