Я новичок в Prolog. Я пытаюсь найти n-й член и сумму серии Фибоначчи.Turbo Prolog: 420 PROLOG.ERR отсутствует
/* Fibonacci */
predicates
fibonacci(integer, integer, integer)
clauses
fibonacci(1,1,1):-!.
fibonacci(2,1,2):-!.
fibonacci(N, Term, Sum):-
N1 = N - 1,
N2 = N - 2,
fibonacci(N1, Term1, Sum1),
fibonacci(N2, Term2, Sum2),
Term = Term1 + Term2,
Sum = Term + Sum.
Однако при компиляции в Турбо Прологе я получаю 420 PROLOG.ERR отсутствует на
Фибоначи (N2, term2, sum2),
Почему это происходит? Любая помощь приветствуется. Заранее спасибо.
'Фибоначи (N2, term2, sum2)' 'выглядит как Sum2' не используется нигде. Это предназначено? Хотя я не знаю, почему это будет помечено как ошибка. Это должно быть предупреждение. Вы также должны пересмотреть свою реализацию. Два рекурсивных вызова очень неэффективны и не нужны. Если вы ищете «fibonacci» в этом разделе Stackoverflow, вы найдете множество примеров. – lurker
ОК .. поиск по SO для лучшего решения. Но просто интересно узнать, что такое ошибка? :) – lU5er
@ lurker Я думаю, вы поняли это правильно! Поскольку я не использую этот термин TP, это бросает это. Я просто использовал фиктивную переменную для хранения значения типа 'dummy = Sum2'.Теперь ошибка смещена в эту строку. – lU5er