Functions in SCALA:
1. Higher Order Functions in Scala:
I) foreach ()
II) map ()
III) reduce ()
I) foreach() :
scala > val technologies = List ( “Hadoop”, “Java”, “Salesforce”);
technologies: List[String] = List (Hadoop, Java, Salesforce)
scala > technologies . foreach ((t:String) = > ( println (t) ) );
output:
Hadoop
Java
Salesforce
II) map() :
scala > val technologies = List ( “Hadoop”, “Java”, “Salesforce”);
technologies: List[String] = List (Hadoop, Java, Salesforce)
scala > val tSize = technologies . map ((c) = > ( c.size));
tSize : List [Int] = List (6, 4, 10)
scala > println (tSize);
List (6,4,10)
III) reduce() :
scala > val score = List (183,186,190,191)
score: List [Int] = List (183,186,190,191)
scala > val totalScore = score.reduce( (a : Int, b: Int) = > (a+b));
totalMarks: Int = 750
scala> val totalScore =score. reduce((a,b) => (a+b));
totalMarks: Int = 750
Anonymous Functions in SCALA:
Anonymous Functions mainly the combination of Function literals and Function Values.
Function literals : Anonymous functions in source code is called function literals
Function Values : Function literals are instantiated into objects are called function values.
Example of Anonymous Function:
Anonymous_Funct.scala
object Anonymous_Funct
{
def main (args: Array[String])
{
var add = (x: Int) => x+1;
var mul = (a:Int, b:Int) => a*b;
println (“Addition value :” + add(10));
println (“Multiple value : “+ mul (9, 10) );
println ( ” New Addition Value: ” + ( (10) – 5));
println ( ” New Multiplied Value: ” + ( mul (10,9)+50 ) ) );
}
}
Output:
Scala> scalac Anonymous_Funct.scala
Scala> Anonymous_Funct
Addition value 11
Multiple value 19
New Addition Value 5
New Multiplied Value 140