(notonline)--> -- -- demo\rosetta\Generator_Exponential.exw -- ====================================== -- without js -- tasks 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(powers,{2}), cubes = task_create(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 cube<square do task_schedule(cubes,1) task_yield() cube = res end while if square!=cube then exit end if end while if i>20 then ?square end if end for terminate = 1 {} = wait_key()