Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sealed trait Expr
- case class Val(x: Int) extends Expr
- case class Add(x: Expr, y: Expr) extends Expr
- case class Mul(x: Expr, y: Expr) extends Expr
- object HelloWorld {
- def eval(e: Expr) : Int =
- e match {
- case Val(x) => x
- case Add(x, y) => eval(x) + eval(y)
- case Mul(x, y) => eval(x) * eval(y)
- }
- def main(args: Array[String]): Unit = {
- val e : Expr = Mul(Val(2), Add(Val(3), Val(4)))
- println(eval(e))
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement