Towers of Hanoi: Difference between revisions
m
→{{header|lambdatalk}}
No edit summary |
|||
Line 3,665:
=={{header|lambdatalk}}==
<syntaxhighlight lang="scheme">
PSEUDO-CODE:
{lambda {:n :from :to :via}▼
hanoi disks from A to B via C
{if {<= :n 0}▼
if
then stop
else {move {- :n 1} :from :via :to}▼
else hanoi upper
hanoi upper disks from C to B via A
-> move▼
{move 4 A B C}▼
CODE:
> move disk 1 from A to C▼
> move disk 2 from A to B▼
{def hanoi
> move disk 1 from C to B▼
> move disk 3 from A to C▼
> move disk 1 from B to A▼
then
> move disk 2 from B to C▼
> move disk 1 from A to C▼
{div}> move
{hanoi {A.rest :h} :c :b :a} }}}
> move disk 1 from C to B▼
-> hanoi
> move disk 2 from C to A▼
> move disk 1 from B to A▼
{hanoi {A.new ==== === == =} A B C}
> move disk 3 from C to B▼
> move disk 1 from A to C▼
> move
> move
</syntaxhighlight>
|