Skip to content

Instantly share code, notes, and snippets.

Created October 17, 2016 11:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/9b9283c0faaa5558bd93a31151666814 to your computer and use it in GitHub Desktop.
Save anonymous/9b9283c0faaa5558bd93a31151666814 to your computer and use it in GitHub Desktop.
the description for this gist
import cats.data.Xor._
sealed trait DivisionError
case object DivisionByZero extends DivisionError
case object SomeOtherPossibleError extends DivisionError
def divide(dividend: Double, divisor: Double): Xor[DivisionError, Double] = {
if (divisor == 0)
left(DivisionByZero)
else
right(dividend/divisor)
}
for {
div1 <- divide(1.0, 1.0)
div2 <- divide(1.0, 0.0)
div3 <- divide(3.0, 3.0)
} yield div1 |+| div2 |+| div3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment