// Lecture 1//==========//**Assignments (values)**//(variable names should be lower case)//=====================================val x = 42val y = 3 + 4//**Collections**//===============List(1,2,3,1)Set(1,2,3,1)1 to 10(1 to 10).toList(1 until 10).toList// an element in a listList(1,2,3,1)(0)List(1,2,3,1)(3)//**Printing/Strings**//====================println("test")val tst = "This is a " + "test" println(tst)val lst = List(1,2,3,1)println(lst.toString)println(lst.mkString("\n"))// some methods take more than one argumentprintln(lst.mkString("[", ",", "]"))//**Conversion methods**//======================List(1,2,3,1).toStringList(1,2,3,1).toSet"hello".toList1.toDouble//**Types**//=========// Int, Long, BigInt// String, Char// List[Int], Set[Double]// Pairs: (Int, String) // List[(BigInt, String)]//**Smart Strings**//=================""" """//**Pairs/Tuples**//================val p = (1, "one")p._1p._2val t = (4,1,2,3)t._4//**Function Definitions**//========================def square(x: Int): Int = x * x//**Ifs control structures**//==========================def fact(n: Int): Int = if (n == 0) 1 else n * fact(n - 1)def fact2(n: BigInt): BigInt = if (n == 0) 1 else n * fact2(n - 1)def fib(n: Int): Int = if (n == 0) 1 else if (n == 1) 1 else fib(n - 1) + f(n - 2)//a recursive functiondef gcd(x: Int, y: Int): Int = 2 //??? //**String Interpolations**//=========================//**Assert/Testing**====================//**For-Maps (not For-Loops)**//============================for (n <- (1 to 10).toList) yield square(n)for (n <- (1 to 10).toList; m <- (1 to 10).toList) yield m * nval mtable = for (n <- (1 to 10).toList; m <- (1 to 10).toList) yield m * nmtable.sliding(10,10).toList.mkString(// webpages