
Hello Andrew, Saturday, June 23, 2007, 5:59:45 PM, you wrote:
The two things mentioned in the subject line are both things I've never tried with Haskell. I've seen a lot of papers about these things, but I don't really understand what the current state of play with this is. Are any of these things "production-ready" yet? And how do you use them in the real world?
definitive reading: "Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell" http://research.microsoft.com/Users/simonpj/papers/marktoberdorf/marktoberdo... my program uses both, together with ^Break handling, and ~10 C++ and Haskell threads running in parallel in my experience, exceptions are rarely required in Haskell program - i use them only to roll out when IO problems occur. OTOH, concurrency is very handy in Haskell/GHC - it's easy to create threads and communicate in reliable way, so it's a great tool to split algorithm into subtasks. and GHC lightweight threads make it very cheap - you may run thousands of threads. example program that uses one thread to produce numbers and another to print them is less than 10 lines long -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com