liquidhaskell-0.7.0.0: tests/todo/binsearch.hs
module BinSearch where
import Language.Haskell.Liquid.Prelude
import Data.Vector
foobar = div
gobble n lo hi
| hi < lo = True
| otherwise = let mid = (hi - lo) `div` 2
in assert (mid >= 0)
z = gobble n 0 n
where n = choose 0
--binarySearch :: (Ord a) => Vector a -> a -> Int -> Int -> Maybe Int
--binarySearch haystack needle lo hi
-- | hi < lo = Nothing
-- | pivot > needle = binarySearch haystack needle lo (mid - 1)
-- | pivot < needle = binarySearch haystack needle (mid + 1) hi
-- | otherwise = Just mid
-- where mid = lo + ((hi - lo) `div` 2)
-- pivot = haystack ! mid
--
--runBinarySearch haystack needle
-- = binarySearch haystack needle 0 (Data.Vector.length haystack)
--
--pos = runBinarySearch vec val
-- where vec = fromList [0..siz]
-- siz = choose 0
-- val = choose 1