Binary search is an algorithm that looks for an element in a sorted data-structure by constantly dividing the search space in half. ###[Rosetta Code][1] > A binary search divides a range of values into halves, and continues to narrow down the field of search until the unknown value is found. It is the classic example of a "divide and conquer" algorithm. ###[Wikipedia][2] > In computer science, a binary search or half-interval search algorithm finds the position of a target value within a sorted array. The binary search algorithm can be classified as a dichotomic divide-and-conquer search algorithm and executes in logarithmic time. --- Smallest # of bytes wins Clarifications: - Example of calling the function/lambda/macro should be included, but don't count those chars! - Output should be `> -1` if found, and `<=-1` otherwise ### Example > binary_search([1,2,3,4,5,6,7,8,9,10], 5); 4 > binary_search([1,2,3,4,5,6,7,8,9,10], 543); -1 [1]: http://rosettacode.org/wiki/Binary_search [2]: https://en.wikipedia.org/wiki/Binary_search_algorithm