Sintaxis del rasgo de Scala
Estoy leyendo el libro de Odersky y hay un ejemplo de hoja de cálculo con la siguiente parte del código:
package org.stairwaybook.scells
trait Arithmetic { this: Evaluator =>
operations += (
"add" -> { case List(x, y) => x + y },
"sub" -> { case List(x, y) => x - y },
"div" -> { case List(x, y) => x / y },
"mul" -> { case List(x, y) => x * y },
"mod" -> { case List(x, y) => x % y },
"sum" -> { xs => (0.0 /: xs)(_ + _) },
"prod" -> { xs => (1.0 /: xs)(_ * _) }
)
}
¿A qué se refiere "esto: evaluador"? ¿Podría alguien ayudar a entender este rasgo? Como veo, define diferentes operaciones que son funciones, pero no veo el panorama general ...