[Haskell-cafe] [ANN] bloomfilter 1.0 - Fast immutable and mutable
Bloom filters
Thomas Hartman
tphyahoo at gmail.com
Sat May 31 12:33:52 EDT 2008
What kind of speed do you get on your laptop for Data.Set? How much
faster is the bloom filter?
thomas.
2008/5/30 Bryan O'Sullivan <bos at serpentine.com>:
> I'm pleased to announce the availability of a fast Bloom filter library
> for Haskell. A Bloom filter is a probabilistic data structure that
> provides a fast set membership querying capability. It does not give
> false negatives, but has a tunable false positive rate. (A false
> positive arises when the filter claims that an element is present, but
> in fact it is not.)
>
> The library is easy to use. As an example, here's a reimplementation of
> the Unix "spell" command.
>
> import Data.BloomFilter.Easy (easyList, elemB)
>
> main = do
> filt <- (easyList 0.01 . words) `fmap` readFile "dictionary.txt"
> let check word | word `elemB` filt = ""
> | otherwise = word ++ "\n"
> interact (concat . map check . lines)
>
> It is also carefully tuned for performance. On my laptop, I can sustain
> a construction or query rate well in excess of a million ByteStrings per
> second.
>
> Source code:
>
> http://hackage.haskell.org/cgi-bin/hackage-scripts/package/bloomfilter
>
> Latest bits:
>
> darcs get http://darcs.serpentine.com/bloomfilter
>
> <b
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
More information about the Haskell-Cafe
mailing list