equal
  deleted
  inserted
  replaced
  
    
    
   291   | 
   291   | 
   292 add2_9_c(10)  | 
   292 add2_9_c(10)  | 
   293   | 
   293   | 
   294 sum(add(2), 0, 2)  | 
   294 sum(add(2), 0, 2)  | 
   295 sum(add(10), 0, 2)  | 
   295 sum(add(10), 0, 2)  | 
         | 
   296   | 
         | 
   297   | 
         | 
   298   | 
         | 
   299   | 
         | 
   300 // some automatic timing in each evaluation  | 
         | 
   301 package wrappers {   | 
         | 
   302   | 
         | 
   303   object wrap {  | 
         | 
   304      | 
         | 
   305     def timed[R](block: => R): R = { | 
         | 
   306       val t0 = System.nanoTime()  | 
         | 
   307       val result = block  | 
         | 
   308       println("Elapsed time: " + (System.nanoTime - t0) + "ns") | 
         | 
   309       result  | 
         | 
   310     }  | 
         | 
   311   | 
         | 
   312     def apply[A](a: => A): A = {  | 
         | 
   313       timed(a)  | 
         | 
   314     }   | 
         | 
   315   }  | 
         | 
   316 }  | 
         | 
   317   | 
         | 
   318 $intp.setExecutionWrapper("wrappers.wrap") | 
         | 
   319   | 
         | 
   320 // Iteration  | 
         | 
   321   | 
         | 
   322 def fib(n: Int) : Int =   | 
         | 
   323   if (n <= 1) 1 else fib(n - 1) + fib(n - 2)  | 
         | 
   324   | 
         | 
   325 fib(10)  | 
         | 
   326   | 
         | 
   327   | 
         | 
   328 Iterator.iterate((1,1)){ case (n: Int, m: Int) => (n + m, n) }.drop(9).next | 
         | 
   329   | 
         | 
   330   | 
   296   | 
   331   | 
   297   | 
   332   | 
   298 // Function Composition  | 
   333 // Function Composition  | 
   299 //======================  | 
   334 //======================  | 
   300   | 
   335   |