► |  | Redex: Practical Semantics Engineering

1 | Amb: A Redex Tutorial
2 | Long Tutorial
3 | Extended Exercises
4 | The Redex Reference
5 | Automated Testing Benchmark
| Bibliography
| Index

▼ | 3 | Extended Exercises

3.1 | Problem: Objects
3.2 | Solution: Objects
3.3 | Problem: Types
3.4 | Solution: Types
3.5 | Problem: Missionaries and Cannibals
3.6 | Solution: Missionaries and Cannibals
3.7 | Problem: Towers of Hanoi
3.8 | Solution: Towers of Hanoi
3.9 | Problem: GC
3.10 | Solution: GC
3.11 | Problem: Finite State Machines
3.12 | Solution: Finite State Machines
3.13 | Problem: Threads
3.14 | Solution: Threads
3.15 | Problem: Contracts
3.16 | Solution: Contracts
3.17 | Problem: Binary Addition
3.18 | Solution: Binary Addition

top ← prev up next →

#### 3.7`` Problem: Towers of Hanoi

Implement a solver for Tower of Hanoi as a reduction relation, where a step by the reduction corresponds to a move in the game. You can implement the solver as an exploration of all possible game moves via the reduction relation, checking whether a solution state is reachable.

Hints While you can implement the game using just define-language and reduction-relation, a metafunction that checks whether a stack of ties will “accept” a given additional tile makes the reduction easier to write. Among the possible choices for representing a tile, a list of •s works well and looks nice.

top ← prev up next →