case class and traits

Я хочу создать специальный калькулятор. Я думаю, что case-класс - хорошая идея для операций:

sealed class Expr
case class add(op1:Int, op2:Int) extends Expr
case class sub(op1:Int, op2:Int) extends Expr
case class mul(op1:Int, op2:Int) extends Expr
case class div(op1:Int, op2:Int) extends Expr
case class sqrt(op:Int) extends Expr
case class neg(op:Int) extends Expr
/* ... */

Теперь я могу использовать match-case для парсинга ввода. Maybe, I should also use traits (ie: trait Distributivity, trait Commutativity and so on), Is that posible? Is that a good idea?

6
задан barroco 3 September 2010 в 13:14
поделиться