set union-operation in Prolog : Erklärung

union([H|T],[],[H|T]).     
union([],[H|T],[H|T]).    
union([H|T], SET2, RESULT) :- member(H,SET2), union(T,SET2,RESULT).    
union([H|T], SET2, [H|RESULT]) :- not(member(H,SET2)), union(T,SET2,RESULT).

Ich bin in der Lage zu verstehen, dass es ist das Durchlaufen der ersten Liste und das hinzufügen auf der Grundlage, ob das element ist ein Mitglied der 2. Liste steht oder nicht. Ich habe die Logik. Aber der workflow ist geheimnisvoll für mich, wo es fügt die Elemente der "zweiten Liste" zu dem Ergebnis, sobald die erste Liste ist erschöpft.

Könnte bitte jemand ein einfaches Beispiel, wie union([1,2], [2,3], Result), und erklären Sie den workflow.

danke für das edit.. das machte es viel mehr klar..

InformationsquelleAutor Firefox | 2012-10-16

Schreibe einen Kommentar