주사위를 굴리는 간단한 도메인 특화 언어(DSL)를 만들어 봐요. Dungeons & Dragons 같은 게임을 하는 사람이라면 이런 DSL에 익숙할 거예요. 예를 들어 2 D20 + 1 D6 같은 표현이 있는데, 이는 20면체 주사위 두 개와 6면체 주사위 한 개를 굴리라는 뜻이에요.
2 d20 + 3 d10 같은 표현은 Pharo 문법으로 구현할 수 있어요. + 역시 다른 메서드와 마찬가지로, 숫자가 아닌 다른 클래스에도 구현할 수 있어요. d20 같은 메서드는 클래스 확장을 이용해 기존 Integer 클래스에 구현할 수 있어요. 클래스 확장은 클래스가 속한 패키지가 아닌 다른 패키지에 있는 메서드를 말해요.
이 연습 문제는 Learning Object-Oriented Programming, Design and TDD with Pharo 책에서 가져왔어요. 이 책은 http://books.pharo.org에서 볼 수 있고, 12장 "Crafting a simple embedded DSL with Pharo"에서 다뤄요.