Sviluppa un semplice linguaggio specifico del dominio (DSL) per lanciare i dadi. Chi gioca a giochi come Dungeons & Dragons conosce bene questo tipo di DSL. Un esempio è la seguente espressione: 2 D20 + 1 D6, che significa che dobbiamo lanciare due dadi a 20 facce e un dado a 6 facce.
L'espressione 2 d20 + 3 d10 si può implementare usando la sintassi di Pharo. + è un metodo come qualsiasi altro e può essere implementato su classi diverse dai numeri. Metodi come d20 possono essere implementati sulla classe Integer esistente con le estensioni di classe, cioè un metodo in un pacchetto diverso da quello in cui si trova la classe.
Questo esercizio è tratto dal libro: Learning Object-Oriented Programming, Design and TDD with Pharo, disponibile su http://books.pharo.org. Capitolo 12: Crafting a simple embedded DSL with Pharo.
Iscriviti a Exercism per imparare e padroneggiare Pharo con 50 esercizi e il mentoring di persone reali, tutto gratis.