F = Map() FF = Map() adjust F(k, d) = { my (v); if (!mapisdefined(F, k, &v), v = 0; ); mapput(F, k, v+d); return (v+d); } adjust FF(k, d) = { my (v); if (!mapisdefined(FF, k, &v), v = 0; ); mapput(FF, k, v+d); return (v+d); } { v = -1; for (n = 1, 10 000, print (n " " v); old f = adjust F(v, 0); adjust FF(old f, -1); f = adjust F(v, +1); nb = adjust FF(f, +1); same = nb * f; diff = n - same; v = diff - same; ); } quit