# PartialFunction

A few handy operations which leverage the extra bit of information available in partial functions. Examples:

``````import PartialFunction._

def strangeConditional(other: Any): Boolean = cond(other) {
case x: String if x == "abc" || x == "def"  => true
case x: Int => true
}
def onlyInt(v: Any): Option[Int] = condOpt(v) { case x: Int => x }``````
Companion
class
Source
PartialFunction.scala
class Object
trait Matchable
class Any

## Type members

### Classlikes

final class ElementWiseExtractor[-A, +B] extends AnyVal

## Value members

### Concrete methods

def cond[T](x: T)(pf: PartialFunction[T, Boolean]): Boolean

Creates a Boolean test based on a value and a partial function.

Creates a Boolean test based on a value and a partial function. It behaves like a 'match' statement with an implied 'case _ => false' following the supplied cases.

Value Params
pf

the partial function

x

the value to test

Returns

true, iff `x` is in the domain of `pf` and `pf(x) == true`.

Source
PartialFunction.scala
def condOpt[T, U](x: T)(pf: PartialFunction[T, U]): Option[U]

Transforms a PartialFunction[T, U] `pf` into Function1[T, Option[U]] `f` whose result is `Some(x)` if the argument is in `pf`'s domain and `None` otherwise, and applies it to the value `x`.

Transforms a PartialFunction[T, U] `pf` into Function1[T, Option[U]] `f` whose result is `Some(x)` if the argument is in `pf`'s domain and `None` otherwise, and applies it to the value `x`. In effect, it is a `match` statement which wraps all case results in `Some(_)` and adds `case _ => None` to the end.

Value Params
pf

the PartialFunction[T, U]

x

the value to test

Returns

`Some(pf(x))` if `pf isDefinedAt x`, `None` otherwise.

Source
PartialFunction.scala
def empty[A, B]: PartialFunction[A, B]

The partial function with empty domain.

The partial function with empty domain. Any attempt to invoke empty partial function leads to throwing scala.MatchError exception.

Source
PartialFunction.scala
def fromFunction[A, B](f: A => B): PartialFunction[A, B]

Converts an ordinary function to a partial function.

Converts an ordinary function to a partial function. Note that calling `isDefinedAt(x)` on this partial function will return `true` for every `x`.

Value Params
f

an ordinary function

Returns

a partial function which delegates to the ordinary function `f`

Source
PartialFunction.scala