Monday, September 19, 2016

Partially Applied Function : Example...

scala> //# 188

scala> def total(math: Int, history:Int, science: Int) = {
     |     math + history + science
     | }
total: (math: Int, history: Int, science: Int)Int

scala>

scala> //Example 1 : Two Argument applied

scala> val twoArgApplied = total(50, 70, _:Int)
twoArgApplied: Int => Int = <function1>

scala> twoArgApplied(60)
res6: Int = 180

scala>

scala> //Example 2 : One Argument applied

scala> //A partiall applied function assigned to function literal

scala> val oneArgApplied = total(50, _: Int, _:Int)
oneArgApplied: (Int, Int) => Int = <function2>

scala> oneArgApplied(30, 40)
res7: Int = 120

scala>

scala>

scala> //Example 3 : No Argument applied

scala> val noArgApplied = total _
noArgApplied: (Int, Int, Int) => Int = <function3>

scala> noArgApplied(40, 50, 60)
res8: Int = 150

scala>

scala> //Example 4 : Another example where no argument is applied

scala> //Note this 'println _' is different from the placeholder

scala> //syntax 'println(_)

scala> val input = List(10, 20, 30)
input: List[Int] = List(10, 20, 30)

scala> input.foreach(println _)
10
20
30

scala> //A shortcut for the previous example

scala> input.foreach(println)
10
20
30