[Haskell-cafe] Haskell for the Enterprise (topic for a MSc dissertation?)

Paul Johnson paul at cogito.org.uk
Wed Aug 15 14:53:47 EDT 2007


Lars Oppermann wrote:
>
> I would love to hear your comments on this. Has this been done over 
> and over already? Are there any source which you think of from the top 
> of your head which I should check out? Books that you would want to 
> recommend?
Sounds interesting.  I for one would like to read a study along these lines.
>
> As I wrote above, I'm quite new to Haskell. Thus if anyone wants to 
> recommend some readings specifically on the aspect of modeling in a 
> functional environment I'd be happy to hear about that too.
>
I'm not sure what you mean by "modelling": functional programmers don't 
see modelling as separate from coding: the code is the model, and if 
thats not abstract enough then you didn't do it right.

Take a look at some good examples of combinator libraries.  Parsec and 
QuickCheck are good case studies.  Examine the interfaces, and see how 
the model shines through.  Understand how monads are used to model 
different ideas of control flow (especially the list monad, and also 
backtracking in Parsec).  If you can get your head around it you might 
also look at the continuation monad and see how it can be used as the 
foundation for arbitrary flow of control concepts.  Finally compare the 
use of monad transformers with "aspect oriented" programming.

You might also read the "poor mans concurrency" paper 
http://www.cs.chalmers.se/~koen/pubs/jfp99-monad.ps.  The dialect of 
Haskell is obsolete, but you'll get the idea.

Don't get too hung up on monads.  Also study applicative functors and 
arrows.  Applicative functors are probably easier to figure out at 
first.  Arrows are what you get when you cross applicative functors with 
monads (more or less).

Paul.


More information about the Haskell-Cafe mailing list