Multiple applications of the infix x +/\ y does the trick. f=: >:@i.@# +/\&.> < f 2 3 5 7 ┌───────┬──────┬─────┬──┐ │2 3 5 7│5 8 12│10 15│17│ └───────┴──────┴─────┴──┘ g=: ;@f g 2 3 5 7 2 3 5 7 5 8 12 10 15 17
The results of f are the 1-, 2-, 3-, and 4-infix sums. Razing the whole thing gets the desired result. ----- Original Message ----- From: David Vaughan <[email protected]> Date: Friday, September 16, 2011 9:49 Subject: [Jprogramming] Consecutive Numbers in List To: Programming forum <[email protected]> > I'm trying to get a list of the sum of all possible consecutive > numbers. > E.g. > > for p:i.4, I want a list: > > 2 0 0 0 > 2 3 0 0 > 2 3 5 0 > 2 3 5 7 > 3 5 7 0 > 5 7 0 0 > 7 0 0 0 > 3 5 0 0 > > I then do +/"1 to get the sum of each row. My problem is that > I'm only getting consecutive numbers that start on p:0 or end on > the last value, so it misses out loads in between. In the > example above I get all but the last row. This is what I have so far: > > list=:3 :'(+/"1@>{\p:i.y),+/"1@>{\.p:i.y' > list 10 > 2 5 10 17 28 41 58 77 100 129 129 127 124 119 112 101 88 71 52 29 > > Also I was wondering if there was a way to streamline something > like that because I'm doing +/"1@>{\.p:i.y twice basically, but > with \. changed to \ ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
