Scala and Kotlin

Scala Kotlin
Defining Named Functions
def sum(a: Int, b: Int): Int = a+b
fun sum(a: Int, b: Int): Int = a+b
Named Function Reference
sum
::sum
Lambda Functions
def sumf(f: Int => Int, a: Int, b: Int): Int =
    if (a > b) 0
    else f(a) + sumf(f, a + 1, b)
sumf(x => x*x, 1, 5)
fun sumf(f: (Int) -> Int, a: Int, b: Int): Int =
    if (a > b) 0
    else f(a) + sumf(f, a + 1, b)
sumf({ x -> x * x }, 2, 3)
Defining a Class and its Constructor
class Rational(a: Int, b: Int) {
    def numer = a
    def denom = b
}
new Rational(2, 3)
class Rational(a: Int, b: Int) {
    val numer = a
    val denom = b
}
Rational(2, 3)
List Literals
List("apples", "oranges", "pears")

List(1, 2, 3, 4)

List(List(1,0,0), List(0,1,0), List(0,1,1))

List()
listOf("apples", "oranges", "pears")

listOf(1, 2, 3, 4)

listOf(listOf(1,0,0), listOf(0,1,0), listOf(0,1,1))

listOf()