You could have generalised your original 'c' using 'rank' as follows:

   c=: 4 : '(!(x+y)) % (x+y)'         NB. As you had below ...
   a=:1 2 3 4 5
   b=:1 2 3

a c"0 _ b NB. Apply c to each 'scalar item' of a, against 'whole' of b
  1   2    6
  2   6   24
  6  24  120
 24 120  720
120 720 5040


On 07/08/2008, at 5:07 AM, Ian Gorse wrote:

...
If I was to extend it slightly, I have this

c=: 4 : '(!(x+y)) % (x+y)'
a=: 1 2 3 4 5

and the result I want are
  a c 1
1 2 6 24 120
  a c 2
2 6 24 120 720
  a c 3
6 24 120 720 5040

...

c2=: 4 : '(!(a+/b)) % (a+/b)'

NB. Third Approach
a c2 b
 1   2    6
 2   6   24
 6  24  120
24 120  720
120 720 5040
----------------------------------------------------------------------
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