Towers of Hanoi
func hanoi(n, from=1, to=2, via=3) {
if (n == 1) {
say "Move disk from pole #{from} to pole #{to}."
} else {
hanoi(n-1, from, via, to)
hanoi( 1, from, to, via)
hanoi(n-1, via, to, from)
}
}
hanoi(4)