No more state monad version of hash maps / sets in Haskell?

No, there's still a monadic hash map Data. HashTable which lives in the IO monad. (It's pretty annoying that it doesn't live in the ST monad, but that would make it slightly less portable and slightly less easy to understand I suppose, because ST isn't Haskell 98.) It works pretty much like a hashtable in any imperative language.

The performance characteristics should be the same as well.

No, there's still a monadic hash map, Data. HashTable, which lives in the IO monad.(It's pretty annoying that it doesn't live in the ST monad, but that would make it slightly less portable and slightly less easy to understand I suppose, because ST isn't Haskell 98. ) It works pretty much like a hashtable in any imperative language.

The performance characteristics should be the same as well. And of course from any map, including a hashtable, you can create a set, by storing dummy values (e.g. Just map every key to itself).

6 Nitpick on the whole discussion: calling this a "monadic hash map" is pretty misleading, and I was confused by it. I was expecting a MonadHashTable class or something. I'd call it an "impure hash table" or even a "hashtable with operations in IO".

The word "monad" doesn't really belong here. – luqui May 23 '11 at 7:49 1 I don't see why. What's wrong with calling something "monadic" if has a bunch of functions which return values in a monad?

– Robin Green May 23 '11 at 7:53 7 I think to call something "monadic" those functions should return results in an arbitrary monad, or at least any monad in a given type class. If they return only values in IO, well... IO is a functor and a type constructor as well as a monad; why not call it "functorial" or "type constructoric"? – Alexey Romanov May 23 '11 at 7:59 3 @Alexey I just Googled monadic.

The usage of the term "monadic parsing", including in a well-cited paper by Hutton, doesn't conform to your restricted definition of the word. – Robin Green May 23 '11 at 8:02 3 Would you call functions that return lists monadic? If functions returning IO are called monadic then functions returning lists should be as well.

– augustss May 23 '11 at 10:00.

Data. HashMap and Data. HashSet use Patricia trees to store the hash, so the performance for the operations have the same asymptotic complexity as Data.Map.

But that said, the constant factor is much smaller and they perform quite a lot faster in my experience.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions