9f1b358c04
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1486 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
77 lines
1.6 KiB
Plaintext
77 lines
1.6 KiB
Plaintext
|
|
:- object(state_space,
|
|
instantiates(class),
|
|
specializes(object)).
|
|
|
|
|
|
:- info([
|
|
version is 1.0,
|
|
author is 'Paulo Moura',
|
|
date is 1998/3/23,
|
|
comment is 'State space description predicates.']).
|
|
|
|
|
|
:- public(initial_state/1).
|
|
:- mode(initial_state(?nonvar), one_or_more).
|
|
:- info(initial_state/1,
|
|
[comment is 'Initial state.',
|
|
argnames is ['State']]).
|
|
|
|
:- public(initial_state/2).
|
|
:- mode(initial_state(?atom, ?nonvar), zero_or_more).
|
|
:- info(initial_state/2,
|
|
[comment is 'Named initial state.',
|
|
argnames is ['Name', 'State']]).
|
|
|
|
:- public(next_state/2).
|
|
:- mode(next_state(+nonvar, -nonvar), zero_or_more).
|
|
:- info(next_state/2,
|
|
[comment is 'Generates a state sucessor.',
|
|
argnames is ['State', 'Next']]).
|
|
|
|
:- public(goal_state/1).
|
|
:- mode(goal_state(?nonvar), one_or_more).
|
|
:- info(goal_state/1,
|
|
[comment is 'Goal state.',
|
|
argnames is ['State']]).
|
|
|
|
:- public(goal_state/2).
|
|
:- mode(goal_state(?atom, ?nonvar), zero_or_more).
|
|
:- info(goal_state/2,
|
|
[comment is 'Named goal state.',
|
|
argnames is ['Name', 'State']]).
|
|
|
|
:- public(print_state/1).
|
|
:- mode(print_state(+nonvar), one).
|
|
:- info(print_state/1,
|
|
[comment is 'Pretty print state.',
|
|
argnames is ['State']]).
|
|
|
|
:- public(print_path/1).
|
|
:- mode(print_path(+list), one).
|
|
:- info(print_path/1,
|
|
[comment is 'Pretty print a path (list of states).',
|
|
argnames is ['Path']]).
|
|
|
|
|
|
initial_state(State) :-
|
|
::initial_state(_, State).
|
|
|
|
|
|
goal_state(State) :-
|
|
::goal_state(_, State).
|
|
|
|
|
|
print_state(State) :-
|
|
writeq(State), nl.
|
|
|
|
|
|
print_path([]).
|
|
|
|
print_path([State| States]) :-
|
|
::print_state(State),
|
|
print_path(States).
|
|
|
|
|
|
:- end_object.
|