Learning Haskell and FP

Simon Peyton-Jones simonpj@microsoft.com
Thu, 4 Jan 2001 02:51:23 -0800

| > 1.  How the #$!? do I read some data from a file.  Good, I've
| > got the data, now I can work on it.  Nope, now I have an "IO
| > thingie" whatever that is, but all of the standard functions want
| > a regular "thingie" now what?

Perhaps this would be a good moment to advertise the revised version of

	Tackling the Tackling the Awkward Squad:
	monadic input/output, concurrency, exceptions, 
	and foreign-language calls in Haskell


(Concerning the thread I'm responding to, it gives an introduction 
to monadic input/output.)

I've revised and extended this tutorial quite a bit since I announced it
last year,
with a lot of help from people on the Haskell mailing list: thank you!
Further suggestions are most welcome.



	Functional programming may be beautiful, but to write real
	applications we must grapple with awkward real-world issues:
	input/output, robustness, concurrency, and interfacing to programs
	written in other languages. 

	These lecture notes give an overview of the techniques that have
	developed by the Haskell community to address these problems.  I
	introduce various proposed extensions to Haskell along the way, and
	offer an operational semantics that explains what these extensions