Functions in Scala can be defined simply as follows:
def fnname (args)={
// function body
}
def double(i:Int) = i*2
Implementing loop can be done in following manner.
def whileLoop{
var i = 1
while (i<=3) {
println (i)
}
}
Function that takes other functions as a parameter, or that returns a function as the result, are called higher order function. One thing that is particular to functional programming is that it treats function as value. This provides a flexible way to compose programs.
def totalResultOverRange(number:Int, codeBlock: Int => Int):Int = {
var result = 0;
for ( i <- 1 to number) {
result = result + codeBlock(i)
}
return result;
} //> totalResultOverRange: (number: Int, codeBlock: Int => Int)Int
totalResultOverRange(11, i => i) //> res0: Int = 66
totalResultOverRange(11, i =>if (i%2 == 0) 0 else 1)
//> res1: Int = 6
totalResultOverRange(11, i => 1) //> res2: Int = 11