[Haskell-cafe] Types and hashes of hashes, trouble for a Java-programmer...

Lennart Augustsson lennart at augustsson.net
Mon Apr 13 13:45:25 EDT 2009


res <- HashTable.lookup h 3 >>= maybe (return Nothing) (flip
HashTable.lookup 1000)

On Mon, Apr 13, 2009 at 6:59 PM, John Smith <smithsnorth at gmail.com> wrote:
> Yes, agreed. Got any clue on the original problem (except to use Data.Map)?
>
> On Mon, Apr 13, 2009 at 6:55 PM, Jason Dagit <dagit at codersbase.com> wrote:
>>
>> Others have provided help to answer your question but I'd like to
>> provide a little bit different feedback.
>>
>> On Mon, Apr 13, 2009 at 8:42 AM, John Smith <smithsnorth at gmail.com> wrote:
>> > Hi, a java-programmer running into trouble while trying to learn
>> > Haskell.
>> >
>> > I try to make a hash containing hashes but can not getting a value out
>> > of
>> > the innermost hash - I keep running into type-trouble where IO and Maybe
>> > monad is getting mixed?
>> >
>> > My attempt:
>> >
>> > removeMaybeHash x =
>> >   case x of
>> >   Just ref -> ref
>> >   Nothing -> HashTable.new (==) (\key -> key)
>>
>> When you see yourself writing a function like this, you could write it
>> like this instead:
>> removeMaybeHash (Just ref) = ref
>> removeMaybeHash Nothing = HashTable.new (==) (\key -> key)
>>
>> Hopefully you agree this 2 line version is more clear.  You could go
>> further of course and use the function 'maybe' from the prelude, and
>> pass the function 'id' instead of \key -> key, but I don't want to
>> overwhelm you.
>>
>> Good luck,
>> Jason
>
>
> _______________________________________________
> 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