Erlang has so many good things going for it, I think it stands head and shoulders above other dynamic, impure functional languages. Heck, it has actor-based concurrency, failure tolerance, bit-level pattern matching, an excellent development and testing environment, industrial quality libraries, and Prolog syntax. (OK, not everybody thinks that last one is a big plus.)