object Function
A module defining utility methods for higher-order functional programming.
- Source
- Function.scala
- Version
1.0, 29/11/2006
- Alphabetic
- By Inheritance
- Function
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
def
chain[a](fs: Seq[(a) ⇒ a]): (a) ⇒ a
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[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.
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): ((a1, a2, a3, a4)) ⇒ b
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[a1, a2, a3, b](f: (a1, a2, a3) ⇒ b): ((a1, a2, a3)) ⇒ b
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[a1, a2, b](f: (a1, a2) ⇒ b): ((a1, a2)) ⇒ b
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[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.
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[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.
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: ((a1, a2, a3, a4)) ⇒ b): (a1, a2, a3, a4) ⇒ b
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[a1, a2, a3, b](f: ((a1, a2, a3)) ⇒ b): (a1, a2, a3) ⇒ b
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[a1, a2, b](f: ((a1, a2)) ⇒ b): (a1, a2) ⇒ b
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.collection.parallel.immutable
- Immutable, parallel data-structures such asParVector
,ParRange
,ParHashMap
orParHashSet
scala.collection.parallel.mutable
- Mutable, parallel data-structures such asParArray
,ParHashMap
,ParTrieMap
orParHashSet
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.swing
- A convenient wrapper around Java's GUI framework called Swing (scala-swing.jar)scala.util.parsing
- Parser combinators, including an example implementation of a JSON parser (scala-parser-combinators.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
.