Prolog - die erste Liste ist die Teilliste der zweiten Liste?

Beispiel:

isin([1,2,3], [1,0,1,2,3,0])

ergibt true, da 123 ist in 101230

Schrieb ich den folgenden code:

isin([AH|AT],[AH|AT]).

isin([AH|AT],[BH|BT]):- AH = BH, isin(AT,BT),isin([AH|AT],BT).

scheint nicht zu arbeiten. Versuchen Sie nicht, alle eingebauten Funktionen und BTW, der Prolog hat ein eingebautes sublist(L1,L2) Funktion.

Wie Schreibe ich eine Abfrage gegen eine built-in Funktion mit SWI-Prolog? Ich habe versucht, direkt zu schreiben

?- sublist([1],[2]).

aber es gibt mir underfined procedure Fehler.

Ist es möglich zu sehen, wie eine eingebaute Funktion codiert ist? Wie?

  • Versuchen Sie zu Fragen, eine Frage auf einmal bitte. Und warum sollten wir versuchen, Sie nicht zu verwenden, keine built-in Prädikate in deiner ersten Frage?
  • Ich wollte nicht zu verschwenden, mehrere Beiträge für meine eigene Frage.
  • bitte, tun Sie das. Das ist kein forum und jede Frage sollte nur das sein: eine Frage. Zum Beispiel, ist es sehr wahrscheinlich, dass verschiedene Menschen würde wollen eine Antwort auf verschiedene Teile Ihrer aktuellen Frage. Und vielleicht werden Sie nicht stören, wenn Sie nicht alle Antworten zu kennen.
  • Ok, wenn das der bevorzugte Weg. Ich werde tun, wie du gesagt hast, in Zukunft post. Dank
InformationsquelleAutor user893182 | 2011-08-13
Schreibe einen Kommentar