Здравствуйте, raydac, Вы писали:
R>Добрый день
R>У меня вопрос к гуру в языке Пролог. Никак не могу понять, как в Пролог организовать следующее действие:
R>variants(N):- predicat(_,_),N is N + 1,fail.
R>хотелось бы сосчитать количество вариантов, которые находит система при вычислении predicat(_,_), которые я перебираю при помощи fail, но N у меня постоянно 0.. юзаю SWI-Prolog.. как сосчитать количество вариантов выдаваемых системой не уходя в рекурсии?
Если переменная имеет конкретное значение (конкретизирована), то присвоить ей новой значение нельзя. Новое значение можно присвоить только после расконкретизации переменной, что может произойти в процессе возврата (при бектрекинге).
Предикат N is N + 1 возвращает ложь.
Мне довольно трудно сходу ответить на заданный вопрос, так как я не гуру и имею мало опыта на прологе. Поконкретней бы задачку.