Die Umkehrung einer Liste in Prolog

Ich habe fertig, eine Hausaufgabe für meine Programmierung Klasse. Ich sollte erstellen Sie ein Prolog-Programm, das kehrt eine Liste. Ich bin jedoch Probleme zu verstehen, warum genau es funktioniert.

%1. reverse a list
%[a,b,c]->[c,b,a]

%reverse(list, rev_List).
reverse([],[]).  %reverse of empty is empty - base case
reverse([H|T], RevList):-
    reverse(T, RevT), conc(RevT, [H], RevList).  %concatenation

Was genau ist RevT in diesem Fall? Ich weiß es darstellen soll, das Gegenteil von T oder den rest der gegebenen Liste, aber ich weiß nicht, wie es könnte jeder beliebige Wert, da ich noch nicht zugewiesen, es nichts. Sie tut nur dem gleichen Zweck dienen wie RevList aber für jeden rekursiven Aufruf?

Auch, warum ich [H] statt nur H in meinem conc () - Funktion aufrufen? Nicht H beziehen sich auf den Kopf der Liste (ex: [H])? Oder ist es einfach beziehen sich auf das Element am Kopf der Liste (nur H)?

Hilfe bitte deaktivieren Sie dieses, für mich. Ich habe Schwierigkeiten zu verstehen, die Logik hinter dieser Art der Programmierung.

InformationsquelleAutor Jared | 2013-10-19
Schreibe einen Kommentar