Skip to content

Instantly share code, notes, and snippets.

@Mahoney
Created September 24, 2012 22:20
Show Gist options
  • Save Mahoney/3778797 to your computer and use it in GitHub Desktop.
Save Mahoney/3778797 to your computer and use it in GitHub Desktop.
Boolean Logic in Pure Scala - 1st cut
package booleanlogic
sealed abstract class Boolean {
def &(other: Boolean): Boolean
def |(other: Boolean): Boolean
def ^(other: Boolean): Boolean
def unary_! : Boolean
}
case object true1 extends Boolean {
override def &(other: Boolean): Boolean = other
override def |(other: Boolean): Boolean = this
override def ^(other: Boolean): Boolean = !other
override def unary_! : Boolean = false1
}
case object false1 extends Boolean {
override def &(other: Boolean): Boolean = this
override def |(other: Boolean): Boolean = other
override def ^(other: Boolean): Boolean = other
override def unary_! : Boolean = true1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment