object travel {var cities = [amsterdam, paris, london]. travel() :- accept( all ), travel(). reachable(X) :- member(X, cities). add(X) :- append( cities, [X], R), cities := R. }
travel
Usage
?- O = new travel(), O!reachable(X), write(X).
object travel {var cities = [amsterdam, paris, london]. travel() :- accept( all ), travel(). reachable(X) :- member(X, cities). add(X) :- append( cities, [X], R), cities := R. }
travel
?- O = new travel(), O!reachable(X), write(X).