Я пытаюсь вычислить рекурсивную функцию:Рекурсивные функции в Прологе
f(x, y) = 0 if x = 0;
f(x, y) = 1 if x = 1;
f(x, y) = y*y*f(x-2,y) if x>1.
Я попробовал этот путь:
f(0,_,0).
f(1,_,1).
f(X,Y,Z):-
X>1,
XX is X-2,
ZZ = Y*Y*Z,
f(XX,Y,ZZ).
я могу получить только истина/ложь. Как я могу вычислить значение этой функции?
спасибо!
Использовать 'as/2' для арифметического назначения (' =/2' используется для эквивалентности при подстановке). Например, «XX - это X-2». –
Первые два правила могут быть заменены на 'f (0, _, 0) .' и' f (1, _, 1) .' –
Ted Hopp, Wouter Beek, я изменился, но это не поможет. Я не могу получить результат – user3649515