progs/lecture2.scala
changeset 310 335079d938aa
parent 309 b192bc772613
child 316 8b57dd326a91
equal deleted inserted replaced
309:b192bc772613 310:335079d938aa
    19 time_needed(10, for (n <- list.par) yield n + 42)
    19 time_needed(10, for (n <- list.par) yield n + 42)
    20 
    20 
    21 // (needs a library and 'magic' option -Yrepl-class-based)
    21 // (needs a library and 'magic' option -Yrepl-class-based)
    22 
    22 
    23 
    23 
       
    24 
       
    25 
    24 // Just for Fun: Mutable vs Immutable
    26 // Just for Fun: Mutable vs Immutable
    25 //====================================
    27 //====================================
    26 //
    28 //
    27 // - no vars, no ++i, no +=
    29 // - no vars, no ++i, no +=
    28 // - no mutable data-structures (no Arrays, no ListBuffers)
    30 // - no mutable data-structures (no Arrays, no ListBuffers)
    66 // the first produces a result, while the second does not
    68 // the first produces a result, while the second does not
    67 for (n <- List(1, 2, 3, 4, 5)) yield n * n
    69 for (n <- List(1, 2, 3, 4, 5)) yield n * n
    68 
    70 
    69 
    71 
    70 for (n <- List(1, 2, 3, 4, 5)) println(n)
    72 for (n <- List(1, 2, 3, 4, 5)) println(n)
       
    73 
       
    74 
       
    75 // String Interpolations
       
    76 //=======================
       
    77 
       
    78 val n = 3
       
    79 println("The square of " + n + " is " + square(n) + ".")
       
    80 
       
    81 println(s"The square of ${n} is ${square(n)}.")
       
    82 
       
    83 
       
    84 // helpful for debugging purposes
       
    85 //
       
    86 //         "The most effective debugging tool is still careful thought, 
       
    87 //          coupled with judiciously placed print statements."
       
    88 //                   — Brian W. Kernighan, in Unix for Beginners (1979)
       
    89 
       
    90 
       
    91 def gcd_db(a: Int, b: Int) : Int = {
       
    92   println(s"Function called with ${a} and ${b}.")
       
    93   if (b == 0) a else gcd_db(b, a % b)
       
    94 }
       
    95 
       
    96 gcd_db(48, 18)
       
    97 
       
    98 
       
    99 // Asserts/Testing
       
   100 //=================
       
   101 
       
   102 assert(gcd(48, 18) == 6)
       
   103 
       
   104 assert(gcd(48, 18) == 5, "The gcd test failed")
    71 
   105 
    72 
   106 
    73 
   107 
    74 // Higher-Order Functions
   108 // Higher-Order Functions
    75 //========================
   109 //========================