factor/extra/logic/examples/hanoi/hanoi.factor

26 lines
531 B
Factor
Raw Normal View History

2020-03-01 04:19:07 -05:00
! Copyright (C) 2019-2020 KUSUMOTO Norio.
! See http://factorcode.org/license.txt for BSD license.
2020-03-03 07:04:46 -05:00
USING: logic kernel assocs math ;
IN: logic.examples.hanoi
2020-03-01 04:19:07 -05:00
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