46
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
1 |
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
2 |
case class Twice(i: Int) {
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
3 |
def apply(x: Int, y: Int): Int = x * y
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
4 |
//def unapply(z: Int): Option[Int] = if (z % 2 == 0) Some(z/2) else None
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
5 |
}
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
6 |
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
7 |
Twice(21) match {
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
8 |
case Twice(n) => println(n)
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
9 |
}
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
10 |
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
11 |
Twice(21, 3) match {
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
12 |
case Twice(n) => println(n)
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
13 |
}
|
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
14 |
|
44
|
15 |
|
|
16 |
package Main
|
|
17 |
|
|
18 |
object ComprehensionsTest extends App {
|
|
19 |
def even(from: Int, to: Int): List[Int] =
|
|
20 |
for (i <- List.range(from, to) if i % 2 == 0) yield i
|
|
21 |
|
|
22 |
Console.println(even(0, 20))
|
|
23 |
}
|
|
24 |
|
|
25 |
object ComprehensionsTest2 extends App {
|
|
26 |
def foo(n: Int, v: Int) =
|
|
27 |
for (
|
|
28 |
i <- 0 until n;
|
|
29 |
j <- i + 1 until n if i + j == v
|
|
30 |
) yield Pair(i, j);
|
|
31 |
|
|
32 |
foo(20, 32) foreach {
|
|
33 |
case (i, j) =>
|
|
34 |
println("(" + i + "," + j + ")")
|
|
35 |
}
|
|
36 |
}
|
|
37 |
|
|
38 |
object ComprehensionTest3 extends App {
|
|
39 |
for (
|
|
40 |
i <- Iterator.range(0, 20);
|
|
41 |
j <- Iterator.range(i + 1, 20) if i + j == 32
|
|
42 |
) println("(" + i + ", " + j + ")")
|
46
Christian Urban <christian dot urban at kcl dot ac dot uk>
diff
changeset
|
43 |
}
|