Tag: prolog
Prolog ist die am häufigsten verwendete Logik-Programmiersprache. Es unterstützt nicht-deterministische Programmierung durch chronologisches backtracking und pattern-matching durch die Einheit.
4
Antworten
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
2
Antworten
Ich will einfach nur, um etwas zu schaffen wie: like(x,y). Ich habe versucht, für eine lange Zeit und bin wirklich frustriert, könnte jemand bitte sagen Sie mir, wie es zu tun???!!! Eigentlich gibt es zwei Möglichkeiten, in
1
Antworten
Wie mache ich eine operation für jedes element einer Liste, in Ordnung? Basierend auf diesen zwei Ressourcen: http://www.swi-prolog.org/pldoc/doc/swi/library/lists.pl http://www.swi-prolog.org/pldoc/doc_for?object=foreach/2 Stell ich immer verlassen können: foreach(member(X, [1,2]), write(X)). Ist, dass deterministische und kann ich wickeln Sie das Mitglied/2
2
Antworten
Ich versuche eine Regel hinzufügen, die dynamisch auf die knowledge base verwenden SWI-prolog, wo der Körper der Regel ist im Voraus nicht bekannt. Die gewünschte Regel wie folgt aussieht: rule(a) :- fact(1), fact(2). Normalerweise würde man einfach
1
Antworten
Ich versuche aus Prolog zum ersten mal und bin mit ein wenig Schwierigkeiten bei der Verwendung von Listen. Sagen, ich habe eine Liste von Elementen. Ich möchte, um zu überprüfen, dass die Liste besteht aus folgenden Elementen:
2
Antworten
Ich habe ein problem in meinem code mit turbo-prolog, die durchsucht alle Pfade und den kürzesten Weg in einem Graphen zwischen 2 Knoten. Das problem, das ich habe, ist zu testen, ob der Knoten in der Liste
1
Antworten
Ich versuche, erstellen Sie ein Programm, das druckt, wie viele glatte zahlen sind in einem Intervall. Ein Teil der code ist hier: countsmooth(_, , _, _, Count) :- Count is 0. countsmooth(X, [H|T], Min, Max, Count) :-
1
Antworten
Ich bin neu in Prolog, und ich bin versucht zu schreiben, eine if/else-Anweisung mit einer "oder" - Bedingung. Also, um zu demonstrieren, möchte ich etwas wie: gothrough([H|T], B, C):- ( T == or H == 'then'
1
Antworten
Binäre Baum definiert werden können, in Bezug auf die 2 Prädikate: emptyBT, der leere binäre Baum. BTTree(N,T1,T2) das ist wahr, wenn N ist die Wurzel eines binären Baumes mit linkem Teilbaum T1 und rechten Teilbaum T2, wo
3
Antworten
Hintergrund Schreiben brauche ich eine relation von Leistung(P) , sieht durch die Liste und entscheidet, ob alle, aber ein element von P ist null. Hier ist was ich habe: %I have a relation called zero(P) which decides
1
Antworten
Ich bin ein C# - Kerl und sehr neu in prolog. Ich brauche zum schreiben ein prolog-Programm für das folgende Szenario. Kann mir jemand bitte helfen, es zu erreichen. Zwei Personen teilen sich eine Kommode. Brust 4
2
Antworten
Ich habe eine Liste, X, enthält drei Elemente; ID, Name und Klasse. Alle Benutzereingaben werden read_student_info([A, B, C]), nl, nl, menu([[A, B, C] | X]). read_student_info([A, B, C]) :- write('\tStudent ID: '), read(A), write('\tStudent Name: '), read(B),
2
Antworten
http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/2_1.html So auf, dass tutorial, wo es ist: conflict(Coloring) :- adjacent(X,Y), color(X,Color,Coloring), color(Y,Color,Coloring). Verstehe ich das richtig, dass die Farbe ist eine variable und ein Wert nach dem ersten Aufruf color und dann wird dieser Wert verwendet,
5
Antworten
Ich zu schreiben versucht, einen code in Prolog für die Suche nach GCD (ohne modulo) kann mir jemand sagen, was ist Los mit diesem Programm? gcd(X,Y,Z):- X>=Y, X1=X-Y, gcd(X1,Y,Z). gcd(X,Y,Z):- X<Y, X1=Y- X, gcd(X1,X,Z). gcd(0,X,X):- X>0. InformationsquelleAutor
4
Antworten
Ich habe ein problem, um das hinzufügen von Elementen in einer Liste in Prolog. Ich benutze diese Regel: add(X, L, [X|L]). Dieser Regel fügen Sie ein element im Kopf der Liste. Wenn ich möchte hinzufügen, einige element
2
Antworten
Ich versuche zu laufen prolog vom terminal. Ich habe die installierte version 7.2.2 und fügte hinzu, es an meinem Umfeld Pfad mit dem Befehl: PATH=$PATH:/Applications/SWI-Prolog.app/Contents/MacOS Dann begann ich tippte swipl aber dieser Fehler wird zurückgegeben, statt: Illegal
2
Antworten
Wie kann ich eine Liste erstellen mit zahlen von 1 bis N, wobei N >= 0? Prädikat: zahlen(N, L). ?- numbers(5,X). X = [1, 2, 3, 4, 5]. ?- numbers(0,X). X = . Ist dieses Hausaufgaben? Was haben Sie bisher ausprobiert? Wenn Listen beteiligt sind, müssen Sie
7
Antworten
Kennt jemand eine schöne (und möglichst Kostenlose) Möglichkeit für die Integration von Prolog und C#? Im suchen, um eine Prolog-dll oder ähnlichen Anruf von meinem managed code und rufen eine Antwort nachdem alle die Bearbeitung abgeschlossen ist.
3
Antworten
Ich will ein paar if | else Sachen in prolog. Unten ist mein code, Prolog zurück '- R = false' wenn mein input-Liste nicht leer ist, wird es wieder "falsch", wenn meine Liste ist leer. Was vermisse
5
Antworten
Hallo kann mir jemand helfen bei der Berechnung der Summe der ersten n zahlen. Für das Beispiel n=4 => Summe = 10. Bisher habe ich dies schrieb, predicates sum(integer,integer) clauses sum(0,0). sum(N,R):- N1=N-1, sum(N1,R1), R=R1+N. Diese arbeitet,
2
Antworten
Ich bin versucht, schreiben Sie ein Prolog-code finden Sie die n-te element einer Liste. Ich schrieb den code unten, aber es nicht zurückgeben, das element rechts. match([Elem|Tail],Num,Num,Elem). match([Elem|Tail],Num,C,MatchedNumber):- match(Tail,Num,N,Elem), C is N+1. In der ersten Zeile sage
1
Antworten
Ich versuche verwenden eine bedingte Anweisung, wenn N auch etwas tun, sonst tun Sie etwas anderes. Hier ist ein Teil von meinem code, wo ich bin, dies zu tun: (N,Lines,1):-write(N),nl, ( mod(N,2) = 0 -> write('Hello'),nl,write('Again Hello')
2
Antworten
So, ich bin versucht, zu schreiben ein kleines Programm, das das folgende tut. Kann ich Suche nach einem element in einer Liste, falls das element in der Liste gefunden wird, dann wird die Liste ausgedruckt, um zu
2
Antworten
Hier ist mein einfaches Prolog-Programm: friend(X,Y):- knows(X,Y). friend(X,Z):- friend(X,Y), friend(Y,Z). knows(brian,tom). knows(tom,peter). Wenn ich geben Sie die folgende Abfrage friend(brian,peter). Prolog geben Sie die folgende Ausgabe: ?- friend(brian,peter). true Wenn ein weiterer Typ ein Semikolon, Prolog sagen:
2
Antworten
Ich mache die Hausaufgaben zu implementierenden zwei relations-und(A,B) und oder(A,B), die für die logischen "UND" und das logische "ODER" - Operationen auf zwei Boolesche Operanden A und B. die Relation und(A,B)gilt, wenn A und B beide true
2
Antworten
Ich bin neu in prolog und das kann ich einfach nicht verstehen. Ich versuche ein einfaches Programm erstellen, erhält eine Liste von Prädikaten, sucht für ein bestimmtes Prädikat in der Liste, und wendet eine Funktion auf, die
3
Antworten
Ich versuche zu implementieren ist ein Prolog-Programm, das aufteilen einer Liste in zwei Listen. Die erste enthält die zahlen selbst in Positionen, und die zweite die Zahl ist ungerade Positionen. E. g.: even_odd([1,2,4,7,5],Even,Odd). führt Even=[2,7]. und Odd=[1,4,5].
4
Antworten
Habe ich die Erstellung einer Liste von n Elementen, zum Beispiel, do_list(5,L1). zurückkehren sollte, L1=[1,2,3,4,5]. Dies ist, was ich habe, aber es funktioniert nicht. do_list(X,L1):- X1 is X-1, do_list(X1,[X1|L1]). do_list(0,). InformationsquelleAutor xKalelX | 2012-04-18
7
Antworten
Wie zu Implementieren mit Rekursion und cut-off-Zyklus des Zählers (wie for i: = 1 downto N do <operator>) ? Bitte deutlicher erklären, was Sie wollen, tun, tun. Wenn Sie das implementieren von Schleifen in Prolog, dann machst
5
Antworten
Schrieb ich das folgende Programm basiert auf der Logik, dass eine Primzahl ist nur teilbar durch 1 und sich selbst. Also ich gehe einfach durch den Prozess der Teilung, um alle zahlen, die größer als eins und
2
Antworten
Bitte helfen Sie mir dieses problem zu lösen: Ich habe eine Liste von Listen [[1,2],[3,4]] Wie bekomme ich: [1,3] [1,4] [2,3] [2,4] Oder wenn ich eine Liste von Listen [[1,2],[3,4],[6,7]] Wie bekomme ich: [1,3,6] [1,3,7] [1,4,6] [1,4,7]
4
Antworten
Ich bin neu in prolog und bin im Grunde beim schreiben eine Klausel, die würde als true ausgewertet werden, wenn ein bestimmtes Element ist das Letzte Element in einer gegebenen Liste. Hier ist, was ich habe: last(X,[Y|X]).
1
Antworten
Mit prolog, muss ich eine Regel erstellen, die bestimmt, wenn man eine Liste, wenn das erste element der Liste gleich dem letzten element der Liste. Unten ist mein denken. The Base Cases: 1) If The Parameter Is
1
Antworten
Habe ich gelernt prolog.. ich bin mit einem editor namens prol1.1.1 ich schreiben müssen Regel zum vergleichen von 2 strings, wenn ich so etwas wie rel(a1,b1). rel(a2,b2). rel(b2,c2). associatedWith(X,Y,Z) :- rel(X,Y),rel(Y,Z). ?- associatedWith(X,Y,Z). funktioniert es aber wenn
4
Antworten
kann mir bitte jemand helfen nur w/die Grundlagen zur Durchführung rekursive prolog-Funktionen.. append(,X,X). % base append([X|Y],Z,[X|W]) :- append(Y,Z,W). %recursive % base case addup(, 0). % sum of the empty list of numbers is zero % recursive case:
4
Antworten
Bin ich angefangen zu lernen, Prolog, und ich bin in ein compiler-Fehler mit meinem code. Ich versuche, code zu schreiben, der prüft, ob eine Familie in die Armut, wenn Sie bestimmte Bedingungen erfüllen. Die Letzte Zeile zwei
2
Antworten
Wie gehen Sie den zweiten Schritt, wenn die trace-prolog-Programm? Zum Beispiel, ich möchte trace folgende einfache Programm: length1(,0). length1([_X|Xs],N):- length1(Xs,N1), N is N1+1. Ich-trace-Programm: ?- trace,length([1,2,3],N). Call: (7) length([1, 2, 3], _G231) ? Exit: (7) length([1, 2,
3
Antworten
Ich möchte die access-Liste permutation und übergeben Sie Sie als argument an andere Funktionen übergeben werden. Dies ist die permutation code: takeout(X,[X|R],R). takeout(X,[F|R],[F|S]) :- takeout(X,R,S), write(S). perm([X|Y],Z) :- perm(Y,W), takeout(X,Z,W). perm(,). Bitte erklären Sie Ihr problem klar
3
Antworten
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
2
Antworten
Ich entschied mich für das Studium einige Logik-Programmierung und ich stieß auf ein problem. Es ist programmiert in SWI-Prolog. test(A, B, N):- nonvar(B), B = final, true. test(A, B, N):- N > 2, test(A, final, N). test(A,
4
Antworten
Ich bin Anfänger in Prolog-Programmierung. Ich schrieb dieses Programm, um die Berechnung der Länge einer Liste. Warum ist unten das Programm falsch? length(0, ). length(L+l, H|T) :- length(L, T). Schrieb ich unter Programm und es funktioniert einwandfrei.
2
Antworten
Wie kann ich die Berechnung der Länge einer Liste ?- size_sub([[b,a,g], [9,3,7,4], [6]], X). X = [3, 4, 1]. ?- size_sub([[c,g,e,w], [7]], X). X = [4, 1]. ?- size_sub(, X). X = . ist, die Letzte richtige?
3
Antworten
So, ich habe gerade angefangen, der Prolog und ich Frage mich zwei Dinge: 1) gibt es eingebaute Funktionen (oder sind Sie alle aufgerufen, Prädikate?) für einfache Dinge wie das Maximum von 2 zahlen, oder Sinus von einer
3
Antworten
Brauche ich zum Zusammenführen von zwei Listen L1=[1,2,3] und L2=[a,b]: M=[1,a,2,b,3]. Wie kann ich es in PROLOG bitte? InformationsquelleAutor Jakub Turcovsky | 2013-04-10
1
Antworten
Es gibt diese Fakten: man(john). man(carl). woman(mary). woman(rose). Ich brauchen, um das Prädikat Leute(Liste) gibt eine Liste mit den Namen jedes Mannes und jeder Frau auf der Grundlage der bisherigen Fakten. Dies ist, was ich brauche als
4
Antworten
Ich versuche, ein Programm zu schreiben in Prolog, die das einfügen eines Elementes in eine bestimmte position, also z.B. ?- ins(a, [1,2,3,4,5], 3, X). X = [1,2,a,3,4,5]. Ich habe den folgenden code: ins(X,[H|T],P,OUT) :- length([T3],P), concatenate(X,[H],T), ins(...).
1
Antworten
Habe ich Prolog-Aussagen wie diese verb('part_of-8'). noun('doctor_investigation_system-2'). noun('dis-4'). berelation('be-6'). verb('be-6'). noun('hospital_information_system-11'). noun('his-13'). rel('part_of-8', 'doctor_investigation_system-2'). rel('doctor_investigation_system-2', 'dis-4'). rel('part_of-8', 'be-6'). rel('part_of-8', 'hospital_information_system-11'). rel('hospital_information_system-11', 'his-13'). associatedWith(X,Y,Z) :- verb(Y), noun(X), noun(Z), X\=Y, Y\=Z, Z\=X, rel(X,Y), rel(Y,Z), not(beralation(X)), not(beralation(Z)), not(beralation(Y)). mein Ziel
5
Antworten
So muss ich schreiben, ein Prädikat, das remove_duplicates/2 entfernt doppelte Elemente bilden eine gegebene Liste. Zum Beispiel: ?- remove_duplicates([a,a,b,c,c], List). List = [a,b,c] Yes Bitte halten Sie im Verstand ich bin nur zu lernen SWI-Prolog für zwei
1
Antworten
Sagen wir, ich habe die Liste Xs = [a,b,c]. Jetzt möchte ich zum iterieren durch alle Elemente und rufen Sie eine andere Funktion für diese Elemente. Meine Frage ist: wie tun Sie dies, indem Sie den Kopf
1
Antworten
Ich versuche, umzusetzen einen Zuwachs in prolog, und haben geschrieben das folgenden code: coordenate(X,Y,Z):- X is 1, Y is 1, Z is 1, coordenate(X1,Y1,Z1), X1 is X+1, Y1 is Y+1, Z1 is Z. Auch habe ich versucht: