# LaC 2007/11/15 def f(co, a,b,c): print "f", a,b,c co(a+b+c) def g(co, a,b): print "g", a,b co(f, a+b) def h(co, a,b): print "h", a,b g(co, a*b, 5) def call_cc(f, *args): l = [True, None] def bar(*r): l[1:] = r if l[0]: l[0] = False f(bar, *args) bar(None, None) return l[1:] def a(): print "a1" print "a2" [n, r] = call_cc(h,2,3) print "r", r print "a3" print "a4" [r] = call_cc(n,1,4,5) print "r", r print "a5" a()