[Haskell-cafe] Markov chain algorithm (from "The Practice of Programming", Kernighan/Pike)

michael rice nowgate at yahoo.com
Wed May 11 17:39:39 CEST 2011

It's hard to improve on a 20 line Awk program for generating text but I thought it would be fun to investigate a Haskell solution.
Why can't I cons an element onto an existing list?
Prelude Data.List Data.Map> insertWith (:) ("Moby", "Dick") "will" (fromList [(("Joe", "Blow"),["is"]), (("Moby", "Dick"),["may"])])
<interactive>:1:11:    Occurs check: cannot construct the infinite type: a = [a]      Expected type: a      Inferred type: [a]    In the first argument of `insertWith', namely `(:)'    In the expression:        insertWith          (:)          ("Moby", "Dick")          "will"          (fromList [(("Joe", "Blow"), ["is"]), (("Moby", "Dick"), ["may"])])Prelude Data.List Data.Map> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110511/2d934677/attachment.htm>

More information about the Haskell-Cafe mailing list