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