Could someone describe what are the differences between those two languages? Other that they target different VM of course ;)
F# is a variant of ML -- as such it's very close to OCaml or SML. Scala is intended to be a new interface to java VM that has some features of ML, but has more of a concentration on supporting traditional OO in a way that F# doesn't.
I've haven't used Scala, but from what I've seen, one major difference is that it has limited support for type inference and will not automatically add generic parameters. Instead, you're forced to calculate and annotate this explicitly, similarly to C# and other languages.
Compare:
F#:
let id x = x
Sc:
def id[A](x: A) = x
C#:
T id<T>(T x) { return x; }
According to a colleague who's spent some time looking into Scala (with a somewhat jaundiced eye), the first thing that leaps out at you is that you have to read about fifty pages of the reference manual before you are equipped to understand its syntax, let alone its semantics!
One major difference between Scala and F# is in the expressiveness of their respective type systems. Whereas F#'s parametric polymorphism can only abstract over simple types, Scala's type system is able to express higher-kinded types, which is to say that it can abstract over both simple types and type constructors.
Of course this is not to say that Scala's type system is strictly better in all ways; F# has superior type inference.