
On Mon, Mar 1, 2010 at 2:39 AM, Sean Leather
It seems more intuitive to reverse the naming. The key parameter to lookupFloor is actually the ceiling, and the key returned is the greatest key less than or equal to the ceiling. Since there is no floor involved here, I would call the function lookupCeiling.
The greatest number less than something would be the floor. :-) For example: ghci> let map = Map.fromList [ (x, ()) | x <- [0,10..1000] ] ghci> lookupFloor 75 map Just (70, ()) ghci> floor 7.5 7 ghci> lookupCeiling 115 map Just (120,()) ghci> ceiling 11.5 12 But honestly I almost invariably get the definitions of floor and ceiling wrong unless I stop to think for a few seconds. I've trained myself to do that. ;-) Maybe a few examples in the haddocks would be in order. That's easier to comprehend, if you know approximately what it should do. Also, it occurs to me that maybe a combined function :: (Ord k) => k -> Map k v -> (Maybe k v, Maybe k v) would be useful in addition to or in place of lookupFloor and lookupCeiling. But I'm not sure. Best, Leon