Вот реализация в ANSI C, которая близко отражает вышеприведенный код пролога:

кто-нибудь, пожалуйста, помогите мне просто с основами выполнения рекурсивных функций пролога ..

append([],X,X). % base
append([X|Y],Z,[X|W]) :- append(Y,Z,W). %recursive

% base case
addup([], 0). % sum of the empty list of numbers is zero

% recursive case: if the base-case rule does not match, this one must:
addup([FirstNumber | RestOfList], Total) :-
    addup(RestOfList, TotalOfRest),   % add up the numbers in RestOfList
    Total is FirstNumber + TotalOfRest.

Может кто-нибудь объяснить либо на английском, либо на C / C ++ / Java что угодно .. как шаги. Я на самом деле предпочел бы видеть что-то вроде добавления или реверса ... Я в основном просто манипулирую списками переменных вместо целых чисел ... (Я пытался проработать добавление как 10 раз ... тьфу).

Ответы на вопрос(4)

Ваш ответ на вопрос