declare %% Move N disks from tower X to tower Y using tower Z %% (see textbook "Algorithmics" page 32) proc {Towers N X Y Z} if N==1 then {Browse "Move from " # X # " to " # Y} else {Towers N-1 X Z Y} {Browse "Move from " # X # " to " # Y} {Towers N-1 Z Y X} end end {Towers 3 "A" "B" "C"}