Binary search: Difference between revisions
Content added Content deleted
(Add bruijn) |
|||
Line 2,519: | Line 2,519: | ||
{ p "Not found" } |
{ p "Not found" } |
||
{ p "Found at index: #{index}" }</syntaxhighlight> |
{ p "Found at index: #{index}" }</syntaxhighlight> |
||
=={{header|Bruijn}}== |
|||
<syntaxhighlight lang="bruijn"> |
|||
:import std/Combinator . |
|||
:import std/Math . |
|||
:import std/List . |
|||
:import std/Option . |
|||
binary-search [y [[[[[2 <? 3 none go]]]]] (+0) --(∀0) 0] |
|||
go [compare-case eq lt gt (2 !! 0) 1] /²(3 + 2) |
|||
eq some 0 |
|||
lt 5 4 --0 2 1 |
|||
gt 5 ++0 3 2 1 |
|||
# example using sorted list of x^3, x=[-50,50] |
|||
find [[map-or "not found" [0 : (1 !! 0)] (binary-search 0 1)] lst] |
|||
lst take (+100) ((\pow (+3)) <$> (iterate ++‣ (-50))) |
|||
:test (find (+100)) ("not found") |
|||
:test ((head (find (+125))) =? (+55)) ([[1]]) |
|||
:test ((head (find (+117649))) =? (+99)) ([[1]]) |
|||
</syntaxhighlight> |
|||
=={{header|C}}== |
=={{header|C}}== |