O Scala é frequentemente usado dessa maneira para criar DSLs, idiomas específicos do domínio.
Principalmente porque o Scala não possui operadores, e o método de chamada Scala, sintaxe, pode ser abreviado. Por exemplo:
5 é um objeto inteiro. Para calcular 5 mais 7, você poderia escrever
val ans = 5.add (7), exceto que o método de adição é realmente chamado "+", então você escreveria:
val ans = 5. + (7) mas em Scala, você não precisa incluir o "." em chamadas de método ou entre parênteses "()" em torno de argumentos, para chamar o método + no objeto 5, você escreveria
val ans = 5 + 7, que funciona perfeitamente porque o Scala não tem operadores para interferir no seu esquema inteligente de nomenclatura de métodos. Agora estenda essa idéia para suas próprias classes e objetos, incluindo o fato de que você pode "substituir" métodos como +, bem como criar seus próprios métodos chamados >>> ou ::! ou @ * @ ou apenas nomes de texto sem formatação, como fancify.