Revision: 61157
Updated Code
at July 24, 2015 05:48 by rtperson
Updated Code
module BinarySearch where import Control.Lens import Data.Maybe a :: [Int] a = [6, 13, 14, 25, 33, 43, 51, 53, 64, 72, 84, 93, 95, 96, 97] bsearch :: Int -> [Int] -> Maybe Int bsearch _ [] = Nothing bsearch key xs | key < fromJust val = bsearch key (take (mid-1) xs) | key > fromJust val = bsearch key (drop (mid+1) xs) | otherwise = val where mid = floor ((fromIntegral $ (length xs) - 1) / 2) val = xs ^? ix mid
Revision: 61156
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 30, 2012 14:16 by rtperson
Initial Code
module BinarySearch where a :: [Int] a = [6, 13, 14, 25, 33, 43, 51, 53, 64, 72, 84, 93, 95, 96, 97] bsearch :: Int -> [Int] -> Int bsearch _ [] = -1 bsearch key xs | key < val = bsearch key (take (mid-1) xs) | key > val = bsearch key (drop (mid+1) xs) | otherwise = val where mid = floor ((fromIntegral $ (length xs) - 1) / 2) val = xs !! mid
Initial URL
Initial Description
Improved version, using lenses instead of the dangerous (!!) operator for list access.
Initial Title
Binary Search in Haskell
Initial Tags
Initial Language
Haskell