Ich habe ein Prädikat erstellt, das überprüft, ob alle Elemente in einer Liste eine Bedingung erfüllen.Prolog-Liste, überprüfen Sie die Einträge in der Liste
Für dieses Beispiel überprüft das Prädikat, dass alle Elemente in Vielfachen von zwei Check_Multiples/1
sind, was recht gut funktioniert.
Wie würde ich überprüfen, welches Element am Anfang oder am Ende der Liste hinzugefügt werden könnte, und immer noch das Prädikat erfüllen?
Ich versuche, die Rückkehr eine Liste zu machen.
Zum Beispiel:
[2,4,6]
sollte zurückkehren [8]
als (wie das Prädikat nicht 0 erlaubt)
[6,8,10]
zurückkehren sollte [4,12]
Wenn das Prädikat gleich , wie zum Beispiel 'Check_Multiples/1', ist richtig definiert mit CLP (FD) und hat wohldefinierte Regeln, was das Prädikat bedeutet, dann wäre dies einfach,' begin_or_end (L, BE): - append (L, [Y] , L1), findeall (X, (Check_Multiples ([X | L]); Check_Multiples (L1)), BE) .'. – lurker
Hoppla, das sein sollte, 'begin_or_end (L, BE): - Findenall (X, (Check_Multiples ([X | L]); Anhängen (L, [X], L1), Check_Multiples (L1)), BE) .' – lurker
Vielen Dank für Ihre Antwort, ich werde das versuchen. Ich fürchte, ich weiß nicht, was CLD ist und muss noch mehr lesen. Meine naive Herangehensweise war, zu versuchen, das Prädikat Check_Multiples mit einer Variablen sowohl vor als auch nach der Liste aufzurufen. – John