26 lines
531 B
Factor
26 lines
531 B
Factor
! Copyright (C) 2019-2020 KUSUMOTO Norio.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: logic kernel assocs math ;
|
|
IN: logic.examples.hanoi
|
|
|
|
LOGIC-PREDS: hanoi moveo informo ;
|
|
LOGIC-VARS: A B C M N X Y ;
|
|
SYMBOLS: left center right ;
|
|
|
|
{ hanoi N } { moveo N left center right } rule
|
|
|
|
{ moveo 0 __ __ __ } !! rule
|
|
|
|
{ moveo N A B C } {
|
|
[ [ N of 1 - ] M is ]
|
|
{ moveo M A C B }
|
|
{ informo A B }
|
|
{ moveo M C B A }
|
|
} rule
|
|
|
|
{ informo X Y } {
|
|
{ writeo { "move disk from " X " to " Y } } { nlo }
|
|
} rule
|
|
|
|
|