Currying and Partial Functions

Currying transforms a function with multiple parameters into a series of functions with a single parameter.

Currying

def multiply(x: Int)(y: Int): Int = x * y
val timesTwo = multiply(2)_
println(timesTwo(3)) // 6

Partial Functions

val squareRoot: PartialFunction[Double, Double] = {
  case x if x >= 0 => math.sqrt(x)
}
println(squareRoot.isDefinedAt(-1)) // false
← PrevNext →