
On 4 Mar 2009, at 13:33, Michael Easter wrote:
hi again everyone,
I am giving a tech talk soon, and aspire to show an example from Chapter 28 of RWH on the STM monad.
My example is just a watered down version of the "transfer wealth" example in the book. However it is single threaded.
Q: is there an "easy" example of illustrating 2 threads that do something (trivial is fine)? I believe that the book constructs a thread library/manager of sorts but I wonder if there is something easier.
Though I'm not sure how to square this with my example, for now I'd love to see an example of starting up 2 threads that do something and block until a keystroke is entered in the terminal.
My apologies if this is too vague or too much "can you do my homework?" !
Certainly, here's a nice one: map _ [] = [] map f (x:xs) = f x : map f xs parMap _ [] = [] parMap f (x:xs) = let fx = f x in fx `pseq` fx : map f xs I realise this isn't what you expected – it's not the STM monad – but it *is* basic threading, far more basic, and far nicer than firing up monads and communication between threads. Bob