RosettaCodeData/Task/Binary-search/Raku/binary-search-2.raku
2023-07-01 13:44:08 -04:00

11 lines
301 B
Raku

sub binary_search (&p, Int $lo is copy, Int $hi is copy --> Int) {
until $lo > $hi {
my Int $mid = ($lo + $hi) div 2;
given p $mid {
when -1 { $hi = $mid - 1; }
when 1 { $lo = $mid + 1; }
default { return $mid; }
}
}
fail;
}