progs/lecture1.scala
changeset 447 f51e593903ac
parent 444 7a0735db4788
child 471 135bf034ac30
--- a/progs/lecture1.scala	Thu Nov 17 20:05:36 2022 +0000
+++ b/progs/lecture1.scala	Mon Nov 21 15:57:45 2022 +0000
@@ -1,7 +1,24 @@
 // Scala Lecture 1
 //=================
 
+// - List, Sets, Strings, ... 
+// - Value assignments (val vs var)
+// - How to define functions? (What is returned?)
+// - If-Conditions
 
+val tmp = 0
+val result = !(tmp == 0)
+val result = if (tmp == 0) true else false
+
+//        expressions (if (tmp == 0) true else false)
+// - For-Comprehensions (guards, with/without yield)
+//
+//
+// - Options
+// - Higher-Order Functions (short-hand notation)
+// - maps (behind for-comprehensions)
+// - Pattern-Matching
+// - String-Interpolations
 
 // Value assignments
 // (their names should be lower case)
@@ -180,6 +197,7 @@
 // you can make the type of a value explicit
 val name = "bob"
 
+val name : String = "bob"
 
 // type errors
 math.sqrt("64".toDouble)
@@ -327,8 +345,6 @@
 
 // with if-predicates / filters
 
-if (1 == 2) "a" else "b"
-
 for (n <- (1 to 3).toList; 
      m <- (1 to 3).toList;
      if (n + m) % 2 == 0) yield (n, m)
@@ -453,7 +469,7 @@
 
 def count_intersection(A: Set[Int], B: Set[Int]) : Int = {
   var count = 0
-  for (x <- A; if (B contains x)) count += 1 
+  for (x <- A.par; if (B contains x)) count += 1 
   count
 }