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[A](x: A)(pf: PartialFunction[A, Boolean]): Boolean

A Boolean test that is the result of the given function where defined, and false otherwise.

A Boolean test that is the result of the given function where defined, and false otherwise.

It behaves like a case _ => false were added to the partial function.

Value parameters:
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[A, B](x: A)(pf: PartialFunction[A, B]): Option[B]

Apply the function to the given value if defined, and return the result in a Some; otherwise, return None.

Apply the function to the given value if defined, and return the result in a Some; otherwise, return None.

Value parameters:
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 parameters:
f

an ordinary function

Returns:

a partial function which delegates to the ordinary function f

Source:
PartialFunction.scala