2016-11-17 1 views
0

In Prolog, ich binVerwenden Sie eine Regel mit einer Liste

list([5,2,1,6,3]). 

ich mit dem Ausgang richtig abfragen kann wie mit einer Liste eine list.pl Datei Consulting Liste (X):

1 ?- list(X). 
X = [5, 2, 1, 6, 3] 

aber ich versuche, die Abfrage der Liste mit einer Regel zu kombinieren. Ist das möglich? Ich überprüfte die Logik der Regel, und es funktioniert einwandfrei, wenn ich die Liste in der Regelabfrage erklären, wie:

reverse([5,2,1,6,3], What). 

Was ich wirklich tun möchte ist die bezeichnete Liste aus der Datei aufrufen zu umkehren um es soweit wie möglich zu bereinigen, damit ich nicht ständig die Liste für alle Abfragen eingeben muss.

Vielen Dank im Voraus

+2

'Liste (5,2,1,6,3)' nennen? Du meinst wirklich, "liste ([5,2,1,6,3])" richtig? Auf Ihre Frage: 'liste (X), reverse (X, What) .' – lurker

Antwort

0

Sie die folgenden Regeln in Ihrer pl-Datei hinzufügen und dann können Sie das umgekehrte Prädikat

reverse([],[]). 
reverse([H|T], What):- 
    reverse(T,ReverseList), 
    append(ReverseList,[H], What). 
Verwandte Themen