Scala is a hybrid functional and object-oriented programming language. It is based on the Java JVM, so it has available Just-in-Time (JIT) native compilation and native thread support. It has access to the wide variety of class libraries available for Java.
Like Erlang, Scala supports an Actor-style message-passing concurrency model. More traditional thread-based concurrency with locks and shared memory is also available. Unlike Erlang and Haskell, Scala values are not immutable. Like SML and Haskell, typing is static with type inference.
Erlang and Alice SML omitted from graph. Note change from previous tests: 1000 interations, instead of 100. Still 200 cities.
Cores Erlang Haskell Scala OCaml MLton Alice
1 372 86 41.6 6.0 676
2 192 63
3 141 58
4 98 54 14.6 1.6
All times in seconds.
If anyone knows how to reduce the number of cores used by the JVM, I'll fill in the rest of the table for Scala.