18 lines
542 B
Text
18 lines
542 B
Text
: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]])
|