#!/usr/bin/ruby

#
## https://rosettacode.org/wiki/Binary_search
#

func binary_search(array, value, low, high) {
    high < low && return -1;
    var middle = (high+low / 2 -> int);
 
    if (value < array[middle]) {
        return binary_search(array, value, low, middle-1);
    }
    elsif (value > array[middle]) {
        return binary_search(array, value, middle+1, high);
    }
 
    return middle;
}

say binary_search(@(1..100), 23, 0, 99);