我想知道haskell是否有一个通用的二进制搜索函数,它接受一个比较函数f
,如果找到值,将返回EQ
,以及搜索的起始和结束值。 f start
返回LT
,f end
返回GT
,f output
返回EQ
。
binarysearch :: (a -> Ordering) -> a -> a -> a
例如:
binarysearch (\x -> compare x 100) 1 1000 == 100
binarysearch (\x -> compare (x * x) 900) 10 1000 == 30