declare proc {ForAcc A B S P In ?Out} proc {LoopUp C In ?Out} Mid in if C==B then {P In C Mid} {LoopDown C+S Mid Out} else In=Out end end in if S>0 then {LoopUp A In Out} end if S<0 then {LoopDown A In Out} end end proc {ForAllAcc L P In ?Out} case L of nil then In=Out [] X|L2 then Mid in {P In X Mid} {ForAllAcc L2 P Mid Out} end end