Scala se usa a menudo de esta manera para crear DSL, lenguajes específicos de dominio.
Esto se debe principalmente a que Scala no tiene operadores, y el método Scala que llama a la sintaxis se puede abreviar. Por ejemplo:
5 es un objeto entero. Para calcular 5 más 7 podrías escribir
val ans = 5.add (7) excepto que el método de suma en realidad se llama "+", por lo que escribiría:
val ans = 5. + (7) pero en Scala, no necesita incluir el "." en las llamadas al método o los paréntesis "()" alrededor de los argumentos, para llamar al método + en el objeto 5, escribiría
val ans = 5 + 7 que funciona perfectamente porque Scala no tiene operadores que interfieran con su ingenioso esquema de nombres de métodos. ¡Ahora extienda esa idea a sus propias clases y objetos, incluido el hecho de que puede "anular" métodos como +, así como crear sus propios métodos llamados >>> o ::! o @ * @ o simplemente nombres de texto sin formato como fancify.