Scala allows us to define variables, function parameters and function returned values with a type that is a function. We can even specify the exact signature of that function.
import annotation.tailrec
object Program
{
def main(args: Array[String]):Unit =
{
var func:(Int,Int)=>Int = sum;
println(func(4,3))
func = multiply
println(func(4,3))
}
def sum(a:Int,b:Int):Int = a+b
def multiply(a:Int,b:Int):Int = a*b
}
The following video clip overviews this code samples, shows its execution and explains it.







