Cria uma linguagem de domínio específico (DSL) simples para lançar dados. Quem joga jogos como Dungeons & Dragons está familiarizado com uma DSL deste tipo. Um exemplo é a seguinte expressão: 2 D20 + 1 D6, que significa que devemos lançar dois dados de 20 lados e um dado de 6 lados.
A expressão 2 d20 + 3 d10 pode ser implementada com a sintaxe do Pharo. O + é um método como qualquer outro e pode ser implementado em classes que não sejam de números. Métodos como o d20 podem ser implementados na classe Integer existente recorrendo a extensões de classe, ou seja, um método num pacote diferente daquele em que a classe está.
Este exercício foi retirado do livro: Learning Object-Oriented Programming, Design and TDD with Pharo, disponível em http://books.pharo.org. Capítulo 12: Crafting a simple embedded DSL with Pharo.
Inscreve-te no Exercism para aprenderes e dominares Pharo com 50 exercícios, e mentoria humana real, tudo grátis.