LINUX.ORG.RU

История изменений

Исправление runtime, (текущая версия) :

Мне не совсем понятно, почему в некоторых универах упорно студентам дают Visual Prolog (это ведь он?) вместо нормального пролога.

Собственно вопрос: какой тип надо указать предикату one_time если он получает в кач-ве аргумента результат выполнения другого предиката

У тебя тут фундаментальное непонимание, как работает пролог. У предикатов в прологе нет «результата выполнения», в том смысле, в котором о нём принято говорить в большинстве языков программирования.

Ответ на твой вопрос попробую нагуглить, но ничего не обещаю, т.к. с Visual Prolog почти не сталкивался.

Вот у меня и загвоздка в непонимании что это такое «один_раз» (one_time предикат) - может это встроенный предикат в Пролог?

Нет, он у тебя самого и определён:

один_раз(возраст(X,Y)):-возраст(X,Y),!.

К слову, в прологе есть once/1, который делает то же самое, только «правильно».

Исходная версия runtime, :

Мне не совсем понятно, почему в некоторых универах упорно студентам дают Visual Prolog (это ведь он?) вместо нормального пролога.

Собственно вопрос: какой тип надо указать предикату one_time если он получает в кач-ве аргумента результат выполнения другого предиката

У тебя тут фундаментальное непонимание, как работает пролог. У предикатов в прологе нет «результата выполнения», в том смысле, в котором о нём принято говорить в большинстве языков программирования.

Ответ на твой вопрос попробую нагуглить, но ничего не обещаю, т.к. с Visual Prolog почти не сталкивался.

Вот у меня и загвоздка в непонимании что это такое «один_раз» (one_time предикат) - может это встроенный предикат в Пролог?

Нет, он у тебя самого и определён:

один_раз(возраст(X,Y)):-возраст(X,Y),!.

К слову, в прологе есть once/1, который делает то же самое, только правильно.