Ich wundere mich, warum das member/2
Prädikat von Prolog mehrere Alternativen liefert (via Backtracking ?!), wenn True bereits für die Ausgabe vereinheitlicht wurde.Prolog: true/false Ausgabe des Mitglieds Prädikat?
Zum Beispiel member(1, [1,2,3]).
liefert die folgende Ausgabe:
true ;
false.
Warum member
return false, nachdem es bereits, dass das Atom 1
ist in der Tat ein Mitglied der [1,2,3]
Liste herausgefunden?
Noch mehr verwirrend für mich ist die folgende Ausgabe:
?- member(1, [1,2,3,1]).
true ;
true.
welche Prolog-Implementierung verwenden Sie? –
Ich benutze Swi-Prolog. – daniel451
Eine Verbesserung ist ['memberd/2'] (http://stackoverflow.com/a/21971885/772868). – false