Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.43 KB | None | 0 0
  1. sealed trait Expr
  2. case class Val(x: Int) extends Expr
  3. case class Add(x: Expr, y: Expr) extends Expr
  4. case class Mul(x: Expr, y: Expr) extends Expr
  5.  
  6. object HelloWorld {
  7. def eval(e: Expr) : Int =
  8. e match {
  9. case Val(x) => x
  10. case Add(x, y) => eval(x) + eval(y)
  11. case Mul(x, y) => eval(x) * eval(y)
  12. }
  13.  
  14. def main(args: Array[String]): Unit = {
  15. val e : Expr = Mul(Val(2), Add(Val(3), Val(4)))
  16. println(eval(e))
  17. }
  18. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement