Я хочу создать специальный калькулятор. Я думаю, что 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?