case class Twice(i: Int) {
def apply(x: Int, y: Int): Int = x * y
//def unapply(z: Int): Option[Int] = if (z % 2 == 0) Some(z/2) else None
}
Twice(21) match {
case Twice(n) => println(n)
}
Twice(21, 3) match {
case Twice(n) => println(n)
}
package Main
object ComprehensionsTest extends App {
def even(from: Int, to: Int): List[Int] =
for (i <- List.range(from, to) if i % 2 == 0) yield i
Console.println(even(0, 20))
}
object ComprehensionsTest2 extends App {
def foo(n: Int, v: Int) =
for (
i <- 0 until n;
j <- i + 1 until n if i + j == v
) yield Pair(i, j);
foo(20, 32) foreach {
case (i, j) =>
println("(" + i + "," + j + ")")
}
}
object ComprehensionTest3 extends App {
for (
i <- Iterator.range(0, 20);
j <- Iterator.range(i + 1, 20) if i + j == 32
) println("(" + i + ", " + j + ")")
}