J中如何使用循环进行滚动计算

How to use loop to do rolling calculation in J

我想使用一个函数来计算列表编号滚动 window 30 的值。具体来说,一个100个数字的列表,我需要先用0到29的数字来计算,然后是1到30的数字,依此类推。最后应该是 71 到 100。最后我需要得到一个结果列表。(70 个数字)如果函数在下面,

cumulativeR=: 4 : 0
a=.(x+30)}y
b=.x{y
(a-b)%b
) 

我试过使用 while 或 for 之类的循环函数,但我就是写不出来

x=.1 2 3 4 5 6 ………… 70
f=:3:0
'x y z'=. y
r=.0
for_i. x
do. i{r =. z cumulativeR y
end.
)    

我无法获得结果列表。

惯用的解决方案是使用 \ dyadic adverb.

   5 ]\ i.10
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9