My environment
Microsoft Windows [Version 10.0.19045.4291]
(c) Microsoft Corporation. All rights reserved.
C:Usersdnvy>ruby -v
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x64-mingw-ucrt]
C:Usersdnvy>
My try
irb(main):019> a = [0, 4, 7, 10, 12]
=> [0, 4, 7, 10, 12]
irb(main):020> a.bsearch{|element| 7 <=> element}
=> 7
irb(main):021> a.bsearch{|element| -1 <=> element}
=> nil
irb(main):022> a.bsearch{|element| 5 <=> element}
=> nil
irb(main):023> a.bsearch{|element| 15 <=> element}
=> nil
irb(main):024> b = [0, 100, 100, 100, 200]
=> [0, 100, 100, 100, 200]
irb(main):025> r = (0..4)
=> 0..4
irb(main):026> r.bsearch{|i| 100 - a[i]}
=> nil
irb(main):027> r.bsearch{|i| 300 - a[i]}
=> nil
irb(main):028> r.bsearch{|i| 50 - a[i]}
=> nil
irb(main):029> r.bsearch {|i| 100 - a[i] }
=> nil
irb(main):030>
at https://docs.ruby-lang.org/en/master/bsearch_rdoc.html#:~:text=true%2C%20false%2C%20false%5D-,Find%2DAny%20Mode,-In%20find%2Dany
Is the document wrong? Can you explain for me about this method (how it works)?