scala
object Function

[source: `scala/Function.scala`]

`` `object` Function
  `extends` AnyRef

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

Author
  Martin Odersky
Version
  1.0, 29/11/2006

Method Summary
`def` | chain [a](fs : Seq[(a) => a]) : (a) => a Given a sequence of functions `f1`, ..., `fn`, return the function `f1 andThen ... andThen fn`.
`def` | curried [a1, a2, a3, a4, a5, b](f : (a1, a2, a3, a4, a5) => b) : (a1) => (a2) => (a3) => (a4) => (a5) => b Currying for functions of arity 5.
`def` | curried [a1, a2, a3, a4, b](f : (a1, a2, a3, a4) => b) : (a1) => (a2) => (a3) => (a4) => b Currying for functions of arity 4.
`def` | curried [a1, a2, b](f : (a1, a2) => b) : (a1) => (a2) => b Currying for functions of arity 2. This transforms a function of arity 2 into a a unary function returning another unary function.
`def` | curried [a1, a2, a3, b](f : (a1, a2, a3) => b) : (a1) => (a2) => (a3) => b Currying for functions of arity 3.
`def` | tupled [a1, a2, a3, a4, b](f : (a1, a2, a3, a4) => b) : ((a1, a2, a3, a4)) => b Tupling for functions of arity 4. This transforms a function of arity 4 into a unary function that takes a 4-tuple of arguments.
`def` | tupled [a1, a2, a3, b](f : (a1, a2, a3) => b) : ((a1, a2, a3)) => b Tupling for functions of arity 3. This transforms a function of arity 3 into a unary function that takes a triple of arguments.
`def` | tupled [a1, a2, b](f : (a1, a2) => b) : ((a1, a2)) => b Tupling for functions of arity 2. This transforms a function of arity 2 into a unary function that takes a pair of arguments.
`def` | tupled [a1, a2, a3, a4, a5, b](f : (a1, a2, a3, a4, a5) => b) : ((a1, a2, a3, a4, a5)) => b Tupling for functions of arity 5. This transforms a function of arity 5 into a unary function that takes a 5-tuple of arguments.
`def` | uncurried [a1, a2, a3, a4, a5, b](f : (a1) => (a2) => (a3) => (a4) => (a5) => b) : (a1, a2, a3, a4, a5) => b Uncurrying for functions of arity 5.
`def` | uncurried [a1, a2, b](f : (a1) => (a2) => b) : (a1, a2) => b Uncurrying for functions of arity 2. This transforms a unary function returning another unary function into a function of arity 2.
`def` | uncurried [a1, a2, a3, b](f : (a1) => (a2) => (a3) => b) : (a1, a2, a3) => b Uncurrying for functions of arity 3.
`def` | uncurried [a1, a2, a3, a4, b](f : (a1) => (a2) => (a3) => (a4) => b) : (a1, a2, a3, a4) => b Uncurrying for functions of arity 4.
`def` | untupled [a1, a2, a3, a4, b](f : ((a1, a2, a3, a4)) => b) : (a1, a2, a3, a4) => b 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.
`def` | untupled [a1, a2, b](f : ((a1, a2)) => b) : (a1, a2) => b 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.
`def` | untupled [a1, a2, a3, a4, a5, b](f : ((a1, a2, a3, a4, a5)) => b) : (a1, a2, a3, a4, a5) => b 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.
`def` | untupled [a1, a2, a3, b](f : ((a1, a2, a3)) => b) : (a1, a2, a3) => b 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.

Methods inherited from AnyRef
getClass, hashCode, equals, clone, toString, notify, notifyAll, wait, wait, wait, finalize, ==, !=, eq, ne, synchronized

Methods inherited from Any
==, !=, isInstanceOf, asInstanceOf

Method Details

`` `def` chain[a](fs : Seq[(a) => a]) : (a) => a

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

Parameters
  `fs -` The given sequence of functions
Returns
  ...

`` `def` curried[a1, a2, b](f : (a1, a2) => b) : (a1) => (a2) => b

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

Parameters
  `f -` ...
Returns
  ...

`` `def` curried[a1, a2, a3, b](f : (a1, a2, a3) => b) : (a1) => (a2) => (a3) => b

  Currying for functions of arity 3.

Parameters
  `f -` ...
Returns
  ...

`` `def` curried[a1, a2, a3, a4, b](f : (a1, a2, a3, a4) => b) : (a1) => (a2) => (a3) => (a4) => b

  Currying for functions of arity 4.

`` `def` curried[a1, a2, a3, a4, a5, b](f : (a1, a2, a3, a4, a5) => b) : (a1) => (a2) => (a3) => (a4) => (a5) => b

  Currying for functions of arity 5.

`` `def` uncurried[a1, a2, b](f : (a1) => (a2) => b) : (a1, a2) => b

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

`` `def` uncurried[a1, a2, a3, b](f : (a1) => (a2) => (a3) => b) : (a1, a2, a3) => b

  Uncurrying for functions of arity 3.

`` `def` uncurried[a1, a2, a3, a4, b](f : (a1) => (a2) => (a3) => (a4) => b) : (a1, a2, a3, a4) => b

  Uncurrying for functions of arity 4.

`` `def` uncurried[a1, a2, a3, a4, a5, b](f : (a1) => (a2) => (a3) => (a4) => (a5) => b) : (a1, a2, a3, a4, a5) => b

  Uncurrying for functions of arity 5.

`` `def` tupled[a1, a2, b](f : (a1, a2) => b) : ((a1, a2)) => b

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

Parameters
  `f -` ...
Returns
  ...

`` `def` tupled[a1, a2, a3, b](f : (a1, a2, a3) => b) : ((a1, a2, a3)) => b

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

`` `def` tupled[a1, a2, a3, a4, b](f : (a1, a2, a3, a4) => b) : ((a1, a2, a3, a4)) => b

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

`` `def` tupled[a1, a2, a3, a4, a5, b](f : (a1, a2, a3, a4, a5) => b) : ((a1, a2, a3, a4, a5)) => b

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

`` `def` untupled[a1, a2, b](f : ((a1, a2)) => b) : (a1, a2) => b

  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.

`` `def` untupled[a1, a2, a3, b](f : ((a1, a2, a3)) => b) : (a1, a2, a3) => b

  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.

`` `def` untupled[a1, a2, a3, a4, b](f : ((a1, a2, a3, a4)) => b) : (a1, a2, a3, a4) => b

  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.

`` `def` untupled[a1, a2, a3, a4, a5, b](f : ((a1, a2, a3, a4, a5)) => b) : (a1, a2, a3, a4, a5) => b

  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.