Я сделал две разные функции Фибоначчи, первая работала отлично. Затем я попытался упростить это интуитивно понятным способом. Я думал, что это будет работать, но по какой-то причине он говорит ОШИБКА: вне локального стека каждый раз, когда я проверяю его.
Рабочая версия:
fibonacci(0,0).
fibonacci(1,1).
fibonacci(N,F) :- N1 is N-1, N2 is N-2, fibonacci(N1,F1), fibonacci(N2,F2), F is F1+F2.
Не рабочая версия:
fibonacci(0,0).
fibonacci(1,1).
fibonacci(N,F) :- fibonacci(N-1,F1), fibonacci(N-2,F2), F is F1+F2.
Может кто-нибудь объяснить мне, в чем проблема со вторым? Спасибо.