diva, divagate, divalent, divan,
divaricate, dive, diver, diverge,
divergent, divers, diverse, diversify
% 2 - recursive condition
demo_fsa([Letter|Letters], State) :-
arc(State, Letter, Next),
% next lines are for outputting state details
write('< '),
write(State),
write(' - '),
write_list([Letter|Letters]),
write(' >'), nl,
write(' |'), nl,
demo_fsa(Letters, Next).
Suppose that the arc/3 sub-goal is moved as shown below:
% 2 - recursive condition
demo_fsa([Letter|Letters], State) :-
% next lines are for outputting state details
write('< '),
write(State),
write(' - '),
write_list([Letter|Letters]),
write(' >'), nl,
write(' |'), nl,
arc(State, Letter, Next),
demo_fsa(Letters, Next).