In this topic, we will see what are Functions and Anonymous Functions.
Functions
Let us understand more about Functions in Scala.
- A function is a group of statements that perform a task
- We need to give function name, arguments and argument types for regular functions
- Functions are expressions (not statements)
- Functions can be returned, passed as arguments.
Syntax
def functionName(parameters : typeofparameters) : returntypeoffunction = { // statements to be executed }
Example
def sum(lb: Int, ub: Int)={ var total =0 for (element <- lb to ub) { total += element } total }
sum(1,10)
Problem Statement
Display the output for given statements
- Sum of numbers in a given range
- Sum of squares of numbers in a given range
- Sum of cubes of numbers in a given range
- Sum of multiples of 2 in a given range.
Example
def sum(func: Int => Int, lb:Int, ub:Int)= { var total = 0 for(element <- lb to ub) { total += func(element) } total }
def id(i: Int)= i def sqr(i: Int)= i * i def cube(i: Int)= i * i * i def double(i: Int)= i * 2 sum(id, 1, 10) sum(sqr, 1, 10) sum(cube, 1, 10) sum(double, 1, 10)
Anonymous Functions
- Anonymous functions need not have a name associated with it
- Anonymous functions can be assigned to variables
- Those variables can be passed as parameters
- While invoking we need to provide the functionality for the parameters which are defined as functions (for parameter i in this case)
sum(i => i, 1, 10) sum(i => i * i, 1, 10) sum(i => i * i * i, 1, 10) sum(i => i * 2, 1, 10)