Created
March 2, 2012 22:42
-
-
Save alexy/1961985 to your computer and use it in GitHub Desktop.
case class updates
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sealed trait Response | |
case object Right extends Response | |
case object Wrong extends Response | |
case object Skip extends Response | |
case class Responses(right: Long = 0, wrong: Long = 0, skip: Long = 0) { | |
def apply(r: Response) = r match { | |
case Right => right | |
case Wrong => wrong | |
case Skip => skip | |
} | |
def updated(r: Response, v: Long) = r match { | |
case Right => Responses(v,wrong,skip) | |
case Wrong => Responses(right,v,skip) | |
case Skip => Responses(right,wrong,v) | |
} | |
def inc(r: Response) = r match { | |
case Right => Responses(right+1,wrong,skip) | |
case Wrong => Responses(right,wrong+1,skip) | |
case Skip => Responses(right,wrong,skip+1) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment