object Function
A module defining utility methods for higher-order functional programming.
- Source
- Function.scala
- Since
1.0
- Alphabetic
- By Inheritance
- Function
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
- def chain[T](fs: collection.Seq[(T) => T]): (T) => T
Given a sequence of functions
f1
, ...,fn
, return the functionf1 andThen ... andThen fn
.Given a sequence of functions
f1
, ...,fn
, return the functionf1 andThen ... andThen fn
.- fs
The given sequence of functions
- def const[T, U](x: T)(y: U): T
The constant function
- 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.
- 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.
- 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.
- 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.
- 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.
- def uncurried[T1, T2, T3, T4, R](f: (T1) => (T2) => (T3) => (T4) => R): (T1, T2, T3, T4) => R
Uncurrying for functions of arity 4.
- def uncurried[T1, T2, T3, R](f: (T1) => (T2) => (T3) => R): (T1, T2, T3) => R
Uncurrying for functions of arity 3.
- 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.
- def unlift[T, R](f: (T) => Option[R]): PartialFunction[T, R]
Turns a function
A => Option[B]
into aPartialFunction[A, B]
.Turns a function
A => Option[B]
into aPartialFunction[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, methodapplyOrElse
.- f
a function
T => Option[R]
- returns
a partial function defined for those inputs where f returns
Some(_)
and undefined wheref
returnsNone
.
- See also
scala.PartialFunction, method
lift
.
- 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.
- 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.
- 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.
- 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.
This is the documentation for the Scala standard library.
Package structure
The scala package contains core types like
Int
,Float
,Array
orOption
which are accessible in all Scala compilation units without explicit qualification or imports.Notable packages include:
scala.collection
and its sub-packages contain Scala's collections frameworkscala.collection.immutable
- Immutable, sequential data-structures such asVector
,List
,Range
,HashMap
orHashSet
scala.collection.mutable
- Mutable, sequential data-structures such asArrayBuffer
,StringBuilder
,HashMap
orHashSet
scala.collection.concurrent
- Mutable, concurrent data-structures such asTrieMap
scala.concurrent
- Primitives for concurrent programming such asFutures
andPromises
scala.io
- Input and output operationsscala.math
- Basic math functions and additional numeric types likeBigInt
andBigDecimal
scala.sys
- Interaction with other processes and the operating systemscala.util.matching
- Regular expressionsOther packages exist. See the complete list on the right.
Additional parts of the standard library are shipped as separate libraries. These include:
scala.reflect
- Scala's reflection API (scala-reflect.jar)scala.xml
- XML parsing, manipulation, and serialization (scala-xml.jar)scala.collection.parallel
- Parallel collections (scala-parallel-collections.jar)scala.util.parsing
- Parser combinators (scala-parser-combinators.jar)scala.swing
- A convenient wrapper around Java's GUI framework called Swing (scala-swing.jar)Automatic imports
Identifiers in the scala package and the
scala.Predef
object are always in scope by default.Some of these identifiers are type aliases provided as shortcuts to commonly used classes. For example,
List
is an alias forscala.collection.immutable.List
.Other aliases refer to classes provided by the underlying platform. For example, on the JVM,
String
is an alias forjava.lang.String
.