[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