Entwickle eine einfache domänenspezifische Sprache (DSL) zum Würfeln. Wer Spiele wie Dungeons & Dragons spielt, kennt eine solche DSL. Ein Beispiel ist der folgende Ausdruck: 2 D20 + 1 D6. Er bedeutet, dass wir zwei 20-seitige Würfel und einen 6-seitigen Würfel werfen sollen.
Der Ausdruck 2 d20 + 3 d10 lässt sich mit der Pharo-Syntax implementieren. + ist eine Methode wie jede andere und kann auch für andere Klassen als Zahlen implementiert werden. Methoden wie d20 lassen sich mit Klassenerweiterungen für die bestehende Klasse Integer implementieren, also als Methode in einem anderen Paket als dem, in dem die Klasse liegt.
Diese Übung stammt aus dem Buch: Learning Object-Oriented Programming, Design and TDD with Pharo, verfügbar unter http://books.pharo.org. Kapitel 12: Crafting a simple embedded DSL with Pharo.
Melde dich bei Exercism an, um Pharo mit 50 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.