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


