fork download
  1. bsearch(X,Lo,Hi,Y):-Hi=:=Lo+1, X is Lo.
  2. bsearch(X,Lo,Hi,Y):-Hi < Lo+1, fail.
  3. bsearch(X,Lo,Hi,Y):-Hi>= Lo+1, Mid is (Lo+Hi)//2,
  4. f(Mid, Val),
  5. ( Val=<Y, bsearch(X,Mid,Hi,Y)
  6. ; Val>Y, bsearch(X,Lo,Mid,Y)
  7. ).
  8.  
  9. go:-bsearch(X,1,100,49), nl,nl,print(X),nl.
Success #stdin #stdout 0.02s 6204KB
stdin
Standard input is empty
stdout
Standard output is empty