equal
  deleted
  inserted
  replaced
  
    
    
     1 // Scala Lecture 2  | 
     1 // Scala Lecture 2  | 
     2 //=================  | 
     2 //=================  | 
     3   | 
     3   | 
     4   | 
     4   | 
     5 // Overloaded math operations  | 
     5 // the pain with overloaded math operations  | 
     6   | 
     6   | 
     7 (100 / 4)  | 
     7 (100 / 4)  | 
     8   | 
     8   | 
     9 (100 / 3)  | 
     9 (100 / 3)  | 
    10   | 
    10   | 
   263 // f1: (Int, Int) => Int  | 
   263 // f1: (Int, Int) => Int  | 
   264 // f2: List[String] => Option[Int]  | 
   264 // f2: List[String] => Option[Int]  | 
   265 // ...   | 
   265 // ...   | 
   266   | 
   266   | 
   267   | 
   267   | 
         | 
   268 // an aside: partial application  | 
         | 
   269   | 
         | 
   270 def add(a: Int)(b: Int) : Int = a + b  | 
         | 
   271   | 
         | 
   272 sum(add(2), 0, 2)  | 
         | 
   273 sum(add(10), 0, 2)  | 
         | 
   274   | 
         | 
   275 def add2(a: Int, b: Int) : Int = a + b  | 
         | 
   276 sum(x => add2(2, x), 0, 2)  | 
         | 
   277 sum(x => add2(10, x), 0, 2)  | 
         | 
   278   | 
   268 // Function Composition  | 
   279 // Function Composition  | 
   269 //======================  | 
   280 //======================  | 
   270   | 
   281   | 
   271 // How could Higher-Order Functions and Options be helpful?  | 
   282 // How could Higher-Order Functions and Options be helpful?  | 
   272   | 
   283   | 
   309 better_first_word("").map(duplicate) | 
   320 better_first_word("").map(duplicate) | 
   310 better_first_word("").map(duplicate).map(valid_msg) | 
   321 better_first_word("").map(duplicate).map(valid_msg) | 
   311   | 
   322   | 
   312   | 
   323   | 
   313   | 
   324   | 
   314   | 
         | 
   315 // Type abbreviations  | 
         | 
   316 //====================  | 
         | 
   317   | 
         | 
   318 // some syntactic convenience  | 
         | 
   319   | 
         | 
   320 type Pos = (int, Int)  | 
         | 
   321 type Board = List[List[Int]]  | 
         | 
   322   | 
   325   | 
   323   | 
   326   | 
   324   | 
   327   | 
   325 // Implicits (Cool Feature)  | 
   328 // Implicits (Cool Feature)  | 
   326 //=========================  | 
   329 //=========================  | 
   527 val B = (1 to 1000000 by 4).toSet  | 
   530 val B = (1 to 1000000 by 4).toSet  | 
   528   | 
   531   | 
   529 time_needed(10, count_intersection(A, B))  | 
   532 time_needed(10, count_intersection(A, B))  | 
   530 time_needed(10, count_intersection2(A, B))  | 
   533 time_needed(10, count_intersection2(A, B))  | 
   531   | 
   534   | 
         | 
   535   | 
         | 
   536 // Type abbreviations  | 
         | 
   537 //====================  | 
         | 
   538   | 
         | 
   539 // some syntactic convenience  | 
         | 
   540   | 
         | 
   541 type Pos = (int, Int)  | 
         | 
   542 type Board = List[List[Int]]  | 
   532   | 
   543   | 
   533   | 
   544   | 
   534   | 
   545   | 
   535   | 
   546   | 
   536 // Sudoku  | 
   547 // Sudoku  |