Discussion: lookups in maps

David Feuer david.feuer at gmail.com
Mon Jun 8 19:07:13 UTC 2020


Discussion has gotten going again about harmonizing between the names
findWithDefault and lookupDefault in containers and unordered-containers:

    findWithDefault :: Ord k
      => a -> k -> Map k a -> a
    lookupDefault :: (Eq k, Hashable k)
      => a -> k -> HashMap k a -> a

I've been fairly unenthusiastic about adding extra names for this function
in one package or the other, in large part because I don't like the
function. I'd much rather have something in the spirit of `either`,
`maybe`, `bool`, etc.:

    lurkup :: Ord k
       => r -> (a -> r) -> k -> Map k a -> r
    lurkup r f k = maybe r f . lookup k
    lookup k = lurkup Nothing Just k

Unfortunately, I haven't been able to come up with a decent name for this
function. Can anyone help?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20200608/c8092796/attachment.html>


More information about the Libraries mailing list