Binary search can be implemented as a recursive algorithm. Each call makes a recursive call on one-half of the list the call received as an argument.
Complete the recursive function binary_search() with the following specifications:
1. Parameters:
o a list of integers
o a target integer
o lower and upper bounds within which the recursive call will search
2. Return value:
o if found, the index within the list where the target is located
o -1 if target is not found