Если что-то из этого достаточно для вас ...
a { b/c }
a ( b/c )
... это поможет:
trait Term { def / (n:Int):(Term,Int) = (this,n) }
case object Inc extends Term // any other terms declared likewise
и тогда ваш класс может поддержать это следующим образом:
class A {
def apply(t:(Term,Int)) = t match {
case (Inc,n) => n + 1
// further term implementations
}
}
Использование:
scala> val a = new A
a: A = A@1c2628
scala> a { Inc / 8 }
res28: Int = 9
scala> a ( Inc / 8 )
res29: Int = 9