-- -- demo\rosetta\Generator_Exponential.exw -- ====================================== -- bool terminate = false atom res procedure powers(integer p) integer i=0 while not terminate do res = power(i,p) task_suspend(task_self()) task_yield() i += 1 end while end procedure constant squares = task_create(routine_id("powers"),{2}), cubes = task_create(routine_id("powers"),{3}) atom square, cube task_schedule(cubes,1) task_yield() cube = res for i=1 to 30 do while 1 do task_schedule(squares,1) task_yield() square = res while cube20 then ?square end if end for terminate = 1