# 部份套用函式（Partially applied function）

import scala.Math._

def sumOfCubes(a: Double, b: Double, c: Double)=pow(a, 3)+pow(b, 3)+pow(c, 3)

val sumOfCubes32 = sumOfCubes(3, 2, _: Double)
println(sumOfCubes32(4)) // 顯示 99.0

import scala.Math._

def sumOfCubes(a: Double, b: Double, c: Double)=pow(a, 3)+pow(b, 3)+pow(c, 3)

val sumOfCubes3 = sumOfCubes(3, _: Double, _: Double)
println(sumOfCubes3(4, 5)) // 顯示 216.0
println(sumOfCubes3.apply(4, 5)) // 顯示 216.0

val s = sumOfCubes(_: Double , _: Double, _: Double)

val s = sumOfCubes _

_可以看作是，代表sumOfCubes整個參數列。這個語法的作用之一，就是能將def所定義的函式轉換為函式物件來傳遞，相當於你這麼定義：
import scala.Math._
val sumOfCubes=(a: Double, b: Double, c: Double) => pow(a, 3)+pow(b, 3)+pow(c, 3)

Array(1, 2, 3).foreach(x => println(x))

Array(1, 2, 3).foreach(println(_))

Array(1, 2, 3).foreach(println _)   // 相當於 .foreach(x => println(x))

Array(1, 2, 3).foreach(println)

import scala.Math._
def sumOfCubes(a: Double, b: Double, c: Double)=pow(a, 3)+pow(b, 3)+pow(c, 3)
val s = sumOfCubes       // 這是錯的

error: missing arguments for method sumOfCubes; follow this method with `_' if you want to treat it as a partially applied function
val s = sumOfCubes
^