Simple Bloom Filter
This is a very simple bloom filter I wrote for guile because I was bored. It only uses one hash function, whereas a better bloom filter would use more. Also, caution is advised, because the default hash function in guile 2 is a bit crap. I'm told there are better hash functions in the master branch, but I don't know when they will make it into circulation.
It is released under the 3 clause BSD license. See LICENSE for more details.
(use-modules (bloom-filter)) (define bf (make-bloom-filter 1000)) (for-each (lambda (item) (bloom-filter-add! bf item)) '("scheme" "haskell" "erlang" "ocaml")) (bloom-filter-contains? bf "scheme") ; $25 = #t (bloom-filter-contains? bf "java") ; $26 = #f (bloom-filter-contains? bf "haskell") ; $27 = #t (bloom-filter-contains? bf "befunge") ; $28 = #f