[ create a new paste ] login | about

Link: http://codepad.org/EQR8MH0B    [ raw code | fork ]

Plain Text, pasted on Oct 11:
object FoldTest {
    def timeIt(n:Int, f:()=> Unit):Unit = {
        val now = System.currentTimeMillis();
        0.to(n-1).foreach((x) => f());
        println((System.currentTimeMillis() - now) / 1000.0);
    }

    def sum1(xs:Array[Int]):Int = {
        var result = 0
        var i = 0
        while (i < xs.length) {
            result += xs(i);
            i += 1;
        }
        result;
    }

    def sum2(xs:Array[Int]):Int = {
        var result = 0;
        for (i <- 0.to(xs.length-1)) result += xs(i);
        result;
    }

    def sum3(xs:Array[Int]):Int = {
        var result = 0;
        for (x <- xs) result += x;
        result;
    }


    def sum4(xs:Array[Int]):Int = {
        xs.foldLeft(0)((x, y) => x + y);
    }

    def main(args:Array[String]): Unit = {
        var xs = new Array[Int](1000);
        0.to(999).copyToArray(xs);
        timeIt(10000, ()=>sum1(xs));
        timeIt(10000, ()=>sum2(xs));
        timeIt(10000, ()=>sum3(xs));
        timeIt(10000, ()=>sum4(xs));
    }
}



Create a new paste based on this one


Comments: