(G,M,C)→go f()(G∪{f()},M,C) f()isdata++(G,M,C)→go f()(G−{f()},M[data→M(data)+1],C) f()isdone <- true(G,M,C)→go f()(G−{f()},M,C[done→C(done)∪{true}]) f()is<-done(G,M,C)→go f()(G−{f()},M,C[done→C(done)−{true}]) f()isfmt.Println(data)(G,M,C)→go f()(G∪{f()},M,C)