Как остановить выполнение пролога цели более одного раза? - PullRequest
0 голосов
/ 02 августа 2011

У меня есть факт и цель, как показано ниже:

disconnected.

join :- disconnected, time(T), send(T).

Как только эта цель будет достигнута, она должна отключиться от false и, таким образом, не будет выполнена снова. Я новичок в Прологе, поэтому я немного застрял. Я уверен, что это что-то действительно простое, но не могу понять это в данный момент. Есть идеи?

1 Ответ

3 голосов
/ 02 августа 2011

Вы можете использовать assert или retract для изменения известных фактов. Или вы можете использовать глобальные переменные. Я не уверен, насколько это стандартно.

Самым простым было бы объявить ваш join с двумя параметрами: входным параметром, обозначающим текущее состояние, и выходным параметром, обозначающим новое состояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...