in scala
object Function

`object` Function
  `extends` java.lang.Object
  `with` scala.ScalaObject

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

Author:
  Martin Odersky
Version:
  1.0, 29/11/2006

Constructor Summary
| `def` this

Def Summary
| `def` chain [a] (fs: scala.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, a3, b] (f: (a1, a2, a3) => b) : (a1) => (a2) => (a3) => b Currying for functions of arity 3.
| `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` tupled [a1, a2, a3, a4, a5, b] (f: (a1, a2, a3, a4, a5) => b) : (scala.Tuple5[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` tupled [a1, a2, a3, a4, b] (f: (a1, a2, a3, a4) => b) : (scala.Tuple4[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) : (scala.Tuple3[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) : (scala.Tuple2[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` 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, 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, b] (f: (a1) => (a2) => (a3) => b) : (a1, a2, a3) => b Uncurrying for functions of arity 3.
| `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` untupled [a1, a2, a3, a4, a5, b] (f: (scala.Tuple5[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, a4, b] (f: (scala.Tuple4[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, b] (f: (scala.Tuple3[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, b] (f: (scala.Tuple2[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.

Constructor Detail

`def` this

Def Detail

`def` chain [a](fs: scala.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, 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, a3, b](f: (a1, a2, a3) => b): (a1) => (a2) => (a3) => b

  Currying for functions of arity 3.

Parameters:
  `f -` ...
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` tupled [a1, a2, a3, a4, a5, b](f: (a1, a2, a3, a4, a5) => b): (scala.Tuple5[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` tupled [a1, a2, a3, a4, b](f: (a1, a2, a3, a4) => b): (scala.Tuple4[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): (scala.Tuple3[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): (scala.Tuple2[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` 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, 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, b](f: (a1) => (a2) => (a3) => b): (a1, a2, a3) => b

  Uncurrying for functions of arity 3.

`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` untupled [a1, a2, a3, a4, a5, b](f: (scala.Tuple5[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, a4, b](f: (scala.Tuple4[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, b](f: (scala.Tuple3[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, b](f: (scala.Tuple2[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.