def solve(f, min, max) middle = 0 while(min != max) do middle = (min+max)/2 if (f(middle)>0) max = middle else min = middle end return middle end p solve(1, -1000, 1000)