
Bulat Ziganshin wrote:
Hello Andrew,
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...
I've read it. Is everything described in that paper actually implemented now? (And implemented in exactly the same way as the paper says?)
in my experience, exceptions are rarely required in Haskell program - i use them only to roll out when IO problems occur.
Indeed. Somebody else mentioned Maybe; much cleaner, more intuitive solution.
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
It's nice that you can have millions of threads if you want to do something very "concurrent". What I tend to want is "parallel" - doing stuff that *could* be done in a single thread, but I want it to go faster using my big mighty multicore box. As I understand it, you have to do something "special" to make that happen...? While we're on the subject... has anybody ever looked at using muptiple processors on *networked* machines? Haskell's very pure semantics would seem quite well-suited to this...