Advertisement
Guest User

maxByVal

a guest
May 25th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. maxByVal :: Ord a => Map.Map k a -> Maybe (k, v)
  2. maxByVal m = Map.foldrWithKey (Just . f) Nothing m
  3.   where f :: Maybe (k, a) -> (k, a)
  4.         f k v Nothing               = (k,v)
  5.         f k v (Just (maxKey, maxVal))
  6.           | v <= maxVal = (maxKey, maxVal)
  7.           | otherwise   = (k, v)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement