BinarySearch := proc( A, value, low, high ) description "recursive binary search"; if high < low then FAIL else local mid := iquo( high + low, 2 ); if A[ mid ] > value then thisproc( A, value, low, mid - 1 ) elif A[ mid ] < value then thisproc( A, value, mid + 1, high ) else mid end if end if end proc: