
I have decided to escape the world of Perl into something more definitional. I gave up on CAML and Erlang because they contain imperative elements and I am tired of that form of coding. So, I have narrowed it down to Haskell and Mercury. The attractive things about Haskell are: - automatic generation of concurrent programs from normal source... instead of sending msgs to processes like in Erlang. - large user base - possible real job in industry (with Galois Connections). - several books based on it - binaries available (even for my mac os x box already!). So, with that said, http://www.cs.mu.oz.au/research/mercury/information/comparison_with_haskell.... lists a number of advantages of Mercury over Haskell. And both Haskell and Mercury did well in the ICFP. Does anyone have anything to say about these criticisms? There were two particular things in the list that caught my attention: 1- Haskell is a pure functional language, but I don't see any support for backtracking or other logic features... but my guess is you have some way of handling this? How? 2- Mercury's mode system provides support for subtypes. For example, you can declare that a function whose argument is a discriminated union type accepts only a subset of the possible constructors for that type, and the mode system will enforce this.