|
Scala example source code file (PartialFunction.scala)
The PartialFunction.scala Scala example source codepackage scalaz package std trait PartialFunctionInstances { implicit val partialFunctionInstance = new Arrow[PartialFunction] with Category[PartialFunction] with Choice[PartialFunction] { def arr[A, B](f: A => B) = { case a => f(a) } def compose[A, B, C](f: PartialFunction[B, C], g: PartialFunction[A, B]) = new PartialFunction[A, C] { def apply(a: A): C = f(g(a)) def isDefinedAt(a: A): Boolean = g.isDefinedAt(a) && f.isDefinedAt(g(a)) } def id[A] = { case a => a } def choice[A, B, C](f: => PartialFunction[A, C], g: => PartialFunction[B, C]): PartialFunction[A \/ B, C] = { case -\/(a) if f isDefinedAt a => f(a) case \/-(b) if g isDefinedAt b => g(b) } override def split[A, B, C, D](f: PartialFunction[A, B], g: PartialFunction[C, D]): PartialFunction[(A, C), (B, D)] = { case (a, c) if f.isDefinedAt(a) && g.isDefinedAt(c) => (f(a), g(c)) } def first[A, B, C](f: PartialFunction[A, B]): PartialFunction[(A, C), (B, C)] = { case (a, c) if f.isDefinedAt(a) => (f(a), c) } } } object partialFunction extends PartialFunctionInstances Other Scala examples (source code examples)Here is a short list of links related to this Scala PartialFunction.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.