Description
LRU cache.
Description
Please see README.md
README.md
lrucaching
An implementation of lrucaches based on a blogpost by Jasper Van der Jeugt.
This package has no relation to lrucache. I created it because there were bugs in lrucache
and the maintainer was not responding to issues.
Usage
The easiest way to use this library is to use Data.LruCache.IO
. This wraps the cache in a Data.IORef
, a mutable varible in the IO
monad.
e.g. To create a 1000
-item cache, keyed by Integer
, storing String
:
import qualified Data.LruCache.IO as LRU
newCache :: IO (LRU.LruHandle Integer String)
newCache = LRU.newLruHandle 1000
cachedLookup cache key = LRU.cached cache key $
-- insert some something expensive
return $ show key
main :: IO ()
main = do
cache <- newCache
cachedLookup cache 123 >>= putStrLn