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

9 lines
310 B
Raku

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