polarbear([],H,[H]).
polarbear([H|T],Y,[H|Z]):- polarbear(T,Y,Z).
Dies ist der Prologcode. Bei der Eingabe ?-polarbear([1,2], 6, P).
Get P =[1,2,6].
Spezifisches Beispiel der Rekursion in Prolog
Die Sache ist, ich verstehe einfach nicht, wie es funktioniert und ich habe versucht herauszufinden, wie Prolog macht, was es tut.
Ich habe etwas Erfahrung mit Prolog, aber ich verstehe das nicht, also würde jede Anleitung, wie es tut, was es tut, um mir zu helfen, Prolog zu verstehen, sehr geschätzt werden.
Danke. Das hat definitiv geholfen. Also versucht es die erste Klausel und scheitert, dann teilt es die bereitgestellte Liste in Kopf und Schwanz, die 6 wird zu Y und das letzte Argument bleibt als unbekannte Variable. Dann führt er den Polarbear erneut aus, scheitert an der ersten Klausel, geht wieder an die zweite Klausel und dann wird ich verwirrt, wie sich die Werte verschieben. Tut mir leid, ich versuche nur genau zu verstehen, was es denkt, ich bin überfordert, kann aber keine gute Ressource finden. –
Erster Aufruf (zweiter Satz): H = 1, T = [2], Y = 6. Zweiter Aufruf: H = 2, T = [], Y = 6. Dritter Aufruf der erste Satz stimmt überein, also list = [6 ]. Dann zurück zum zweiten Anruf (H = 2), list = [2,6], erster Anruf (H = 1) list = [1,2,6]. –