Iterators.jl will give you a simple iterator accessing the array for several elements at a time:
julia> for i in partition(1:15, 3, 1) @show i end i = (1,2,3) i = (2,3,4) i = (3,4,5) i = (4,5,6) i = (5,6,7) i = (6,7,8) i = (7,8,9) i = (8,9,10) i = (9,10,11) i = (10,11,12) i = (11,12,13) i = (12,13,14) i = (13,14,15)
and, as Fengyang Wang suggested, the function mod1 performs a wrapping-to-start operation. just make a combination:
julia> for i in partition(1:15, 3, 1) @show mod1.(collect(i), 10) end mod1.(collect(i),10) = [1,2,3] mod1.(collect(i),10) = [2,3,4] mod1.(collect(i),10) = [3,4,5] mod1.(collect(i),10) = [4,5,6] mod1.(collect(i),10) = [5,6,7] mod1.(collect(i),10) = [6,7,8] mod1.(collect(i),10) = [7,8,9] mod1.(collect(i),10) = [8,9,10] mod1.(collect(i),10) = [9,10,1] mod1.(collect(i),10) = [10,1,2] mod1.(collect(i),10) = [1,2,3] mod1.(collect(i),10) = [2,3,4] mod1.(collect(i),10) = [3,4,5]