I found out I get the posts in my mail and I am clicking in the mailinglist. Therefore I am starting new threads over and over again. My apologies.

>Why add the extra tuple?
>Better: Chain Char WordTree

It feels a bit too loose. Think it is a imperative quirk. I remove the tupples.


And I am going to change the type Rule to a Map. I have used that package before and it is fast
and easy to use.

Another question. I have a book Real World Haskell, which is great, but I would like to read somewhat more indepth
stuff. Can you recommend one?

Thanks for your advice.

With kind regards,

Edgar

I switched to evolution. Hopefully it will take the in reply to field.

On Tue, Feb 9, 2010 at 11:07 PM, Patrick LeBoutillier <patrick.leboutillier@gmail.com> wrote:
Daniel,

> Sure. If you don't mind that the mutations come in a different order, one
> thing that works wonders is "sequence",
>
> sequence :: Monad m => [m a] -> m [a]
>
> In particular, for m = [], sequence :: [[a]] -> [[a]]. Then, knowing what
> sequence does, we can write
>
> import Control.Monad (sequence)
>
> generateAll :: String -> [String]
> generateAll word = sequence (map f word)
>     where
>     f c = case lookup c leat of
>                Just r  -> [c,r]
>                Nothing -> [c]

That's very nice!

One question though: In the docs sequence is described as:

 "Evaluate each action in the sequence from left to right, and
collect the results."

How is one supposed to deduce what the behavior will be for the list
monad (besides looking at the source)?


Patrick

--
=====================
Patrick LeBoutillier
Rosemère, Québec, Canada



--
Flatliner ICT Service,
Email: Edgar.klerks@gmail.com,
Tel: +31727851429
Fax: +31848363080
Skype: edgar.klerks
Website: flatlinerict.nl
Adres: Koelmalaan 258,
1813JD, Alkmaar
Nederland