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