retroforth/example/hanoi.forth

21 lines
340 B
Text
Raw Normal View History

~~~
'Num var
'From var
'To var
'Via var
:set-vars !Via !To !From !Num ;
:hanoi (num,from,to,via-)
set-vars
@Num n:-zero?
[
@Num @From @To @Via
@Num n:dec @From @Via @To hanoi
set-vars
@To @From '\nMove_a_ring_from_%n_to_%n s:with-format puts
@Num n:dec @Via @To @From hanoi
] if ;
#3 #1 #3 #2 hanoi nl
~~~