# Function

object Function

A module defining utility methods for higher-order functional programming.

Source:
Function.scala
class Object
trait Matchable
class Any

## Value members

### Concrete methods

def chain[T](fs: Seq[T => T]): T => T

Given a sequence of functions `f1`, ..., `fn`, return the function `f1 andThen ... andThen fn`.

Given a sequence of functions `f1`, ..., `fn`, return the function `f1 andThen ... andThen fn`.

Value parameters:
fs

The given sequence of functions

Source:
Function.scala
def const[T, U](x: T)(y: U): T

The constant function

The constant function

Source:
Function.scala
def tupled[T1, T2, R](f: (T1, T2) => R): ((T1, T2)) => R

Tupling for functions of arity 2.

Tupling for functions of arity 2. This transforms a function of arity 2 into a unary function that takes a pair of arguments.

Note:

These functions are slotted for deprecation, but it is on hold pending superior type inference for tupling anonymous functions.

Source:
Function.scala
def tupled[T1, T2, T3, R](f: (T1, T2, T3) => R): ((T1, T2, T3)) => R

Tupling for functions of arity 3.

Tupling for functions of arity 3. This transforms a function of arity 3 into a unary function that takes a triple of arguments.

Source:
Function.scala
def tupled[T1, T2, T3, T4, R](f: (T1, T2, T3, T4) => R): ((T1, T2, T3, T4)) => R

Tupling for functions of arity 4.

Tupling for functions of arity 4. This transforms a function of arity 4 into a unary function that takes a 4-tuple of arguments.

Source:
Function.scala
def tupled[T1, T2, T3, T4, T5, R](f: (T1, T2, T3, T4, T5) => R): ((T1, T2, T3, T4, T5)) => R

Tupling for functions of arity 5.

Tupling for functions of arity 5. This transforms a function of arity 5 into a unary function that takes a 5-tuple of arguments.

Source:
Function.scala
def uncurried[T1, T2, R](f: T1 => T2 => R): (T1, T2) => R

Uncurrying for functions of arity 2.

Uncurrying for functions of arity 2. This transforms a unary function returning another unary function into a function of arity 2.

Source:
Function.scala
def uncurried[T1, T2, T3, R](f: T1 => T2 => T3 => R): (T1, T2, T3) => R

Uncurrying for functions of arity 3.

Uncurrying for functions of arity 3.

Source:
Function.scala
def uncurried[T1, T2, T3, T4, R](f: T1 => T2 => T3 => T4 => R): (T1, T2, T3, T4) => R

Uncurrying for functions of arity 4.

Uncurrying for functions of arity 4.

Source:
Function.scala
def uncurried[T1, T2, T3, T4, T5, R](f: T1 => T2 => T3 => T4 => T5 => R): (T1, T2, T3, T4, T5) => R

Uncurrying for functions of arity 5.

Uncurrying for functions of arity 5.

Source:
Function.scala
def unlift[T, R](f: T => Option[R]): PartialFunction[T, R]

Turns a function `A => Option[B]` into a `PartialFunction[A, B]`.

Turns a function `A => Option[B]` into a `PartialFunction[A, B]`.

Important note: this transformation implies the original function may be called 2 or more times on each logical invocation, because the only way to supply an implementation of `isDefinedAt` is to call the function and examine the return value. See also scala.PartialFunction, method `applyOrElse`.

Value parameters:
f

a function `T => Option[R]`

Returns:

a partial function defined for those inputs where f returns `Some(_)` and undefined where `f` returns `None`.

scala.PartialFunction, method `lift`.

Source:
Function.scala
def untupled[T1, T2, R](f: ((T1, T2)) => R): (T1, T2) => R

Un-tupling for functions of arity 2.

Un-tupling for functions of arity 2. This transforms a function taking a pair of arguments into a binary function which takes each argument separately.

Source:
Function.scala
def untupled[T1, T2, T3, R](f: ((T1, T2, T3)) => R): (T1, T2, T3) => R

Un-tupling for functions of arity 3.

Un-tupling for functions of arity 3. This transforms a function taking a triple of arguments into a ternary function which takes each argument separately.

Source:
Function.scala
def untupled[T1, T2, T3, T4, R](f: ((T1, T2, T3, T4)) => R): (T1, T2, T3, T4) => R

Un-tupling for functions of arity 4.

Un-tupling for functions of arity 4. This transforms a function taking a 4-tuple of arguments into a function of arity 4 which takes each argument separately.

Source:
Function.scala
def untupled[T1, T2, T3, T4, T5, R](f: ((T1, T2, T3, T4, T5)) => R): (T1, T2, T3, T4, T5) => R

Un-tupling for functions of arity 5.

Un-tupling for functions of arity 5. This transforms a function taking a 5-tuple of arguments into a function of arity 5 which takes each argument separately.

Source:
Function.scala