binarySearch(A(1), value(0), low(0), high(0)) := let mid := low + (high - low) / 2; in -1 when high < low //Not Found else binarySearch(A, value, low, mid - 1) when A[mid] > value else binarySearch(A, value, mid + 1, high) when A[mid] < value else mid;