2 Stimmen

Prolog verstehen [Listen]

Ich soll ein Programm schreiben, das dies tut:

?- pLeap(2,5,X,Y).
X = 2,
Y = 3 ;
X = 3,
Y = 4 ;
X = 4,
Y = 5 ;
X = 5,
Y = 5 ;
false.

(gibt alle Paare X,X+1 zwischen 2 und 5, plus den Sonderfall am Ende).

Das soll die Lösung sein. Ich verstehe nicht wirklich, wie es funktioniert. Kann mir jemand erklären, wie es funktioniert?

pLeap(X,X,X,X).
pLeap(L,H,X,Y) :-
        L<H,
        X is L,
        Y is X+1.
pLeap(L,H,X,Y) :-
        L=<H,
        L1 is L+1,
        pLeap(L1,H,X,Y).

Ich würde es einfach so machen:

pLeap(L,H,X,Y) :-
        X >= L,
        X =< H,
        Y is X+1.

Warum funktioniert es nicht (ohne Berücksichtigung des Sonderfalls am Ende)?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X