したがって、ScalaはJavaと同じくらい高速であるはずです。私が最初にJavaで取り組んだScalaのProject Eulerの問題をいくつか取り上げます。具体的には問題5:「1から20までのすべての数値で割り切れる最小の正の数値は何ですか?」
これが私のJavaソリューションです。私のマシンで完了するまでに0.7秒かかります。
public class P005_evenly_divisible implements Runnable{
    final int t = 20;
    public void run() {
        int i = 10;
        while(!isEvenlyDivisible(i, t)){
            i += 2;
        }
        System.out.println(i);
    }
    boolean isEvenlyDivisible(int a, int b){
        for (int i = 2; i <= b; i++) {
            if (a % i != 0) 
                return false;
        }
        return true;
    }
    public static void main(String[] args) {
        new P005_evenly_divisible().run();
    }
}
これが私のScalaへの「直接翻訳」で、103秒かかります(147倍長くなります)。
object P005_JavaStyle {
    val t:Int = 20;
    def run {
        var i = 10
        while(!isEvenlyDivisible(i,t))
            i += 2
        println(i)
    }
    def isEvenlyDivisible(a:Int, b:Int):Boolean = {
        for (i <- 2 to b)
            if (a % i != 0)
                return false
        return true
    }
    def main(args : Array[String]) {
        run
    }
}
最後に、関数型プログラミングの私の試みは39秒(55倍)かかります
object P005 extends App{
    def isDivis(x:Int) = (1 to 20) forall {x % _ == 0}
    def find(n:Int):Int = if (isDivis(n)) n else find (n+2)
    println (find (2))
}
Windows 7 64ビットでScala 2.9.0.1を使用します。パフォーマンスを向上させるにはどうすればよいですか?私は何か間違ったことをしていますか?それともJavaの方がはるかに高速ですか?
runメソッドのタイミングを調整してみましたか?