Universität Paderborn - Home Universität Paderborn
Die Universität der Informationsgesellschaft

Objektorientierte Programmierung WS 2013/2014 - Datei caseclass.scala

abstract class Term
case class Num(x:Int) extends Term
case class Plus(x:Term, y:Term) extends Term
case class Times(x:Term, y:Term) extends Term
case class Minus(x:Term, y:Term) extends Term
case class Div(x:Term, y:Term) extends Term

object MainClass {
   def eval(t: Term) : Int = t match {
      case Num(x) => x
      case Plus(x,y) => eval(x) + eval(y)
      case Times(x,y) => eval(x) * eval(y)
      case Minus(x,y) => eval(x) - eval(y)
      case Div(x,y) => eval(x) / eval(y)
   }

   def main( a : Array[String]) {
      val t1 = Times(Num(10), Plus(Num(2), Div(Num(5), Num(2))))
      println (eval(t1))
   }
}

Generiert mit Camelot | Probleme mit Camelot? | Geändert am: 21.01.2014