// Scala is about expressions
//
//
1 + 2
val r1 = 1 + 2
val r2 = r1 * r1
val new_list =
for (n <- (1 to 10).toList) yield n * n
def my_not_equal(x: Int, y: Int) : Boolean = {
!(x == y)
}
// why return is not needed in Scala
def sum_even(ls: List[Int]): Int = {
val aux = for (x <- ls) yield {
if (x % 2 == 0) x else 0
}
aux.sum
}
sum_even(List(1,2,3,4,5,6))
def sum_return(ls: List[Int]): Int = {
val aux = for (x <- ls) yield {
if (x % 2 == 0) (return x) else (return 0)
}
aux.sum[Int]
}
sum_return(List(2,3,4,5,6))
// replace subexpressions should not
// change the meaning, but with return it does:
def sq1(n: Int): Int = n * n
def sq2(n: Int): Int = return n * n
def sum_squares(ls: List[Int]): Int = {
(for (n <- ls) yield (return n * n)).sum[Int]
}
sum_squares(List(1,2,3,4,5,6))