Συμβολική επεξεργασία
Με βάση μεταβλητές και όρους μπορούμε να γράψουμε ένα πρόγραμμα
που να αναγνωρίζει πολυώνυμα ορισμένα με τον παρακάτω τρόπο:
-  sum(A, B) (άθροισμα)
-  diff(A, B) (διαφορά)
-  prod(A, B) (γινόμενο)
-  quot(A, B) (πηλίκο)
-  pow(A, B) (ύψωση σε δύναμη)
-  τη μεταβλητή X
-  καθώς και ακεραίους.
polynomial(X, X).
polynomial(N, X) :-
        number(N).
polynomial(sum(A, B), X) :-
        polynomial(A, X),
        polynomial(B, X).
polynomial(diff(A, B), X) :-
        polynomial(A, X),
        polynomial(B, X).
polynomial(prod(A, B), X) :-
        polynomial(A, X),
        polynomial(B, X).
polynomial(quot(A, B), X) :-
        polynomial(A, X),
        number(B).
polynomial(pow(A, B), X) :-
        polynomial(A, X),
        integer(B).
Ερωτήσεις:
?- p(sum(x, 1), x).
 ->.
yes
?- p(sum(x, 1), y).
no
?- polynomial(sum(prod(5,pow(x, 2)), prod(2, x)), x).
 ->.
yes
?- polynomial(sum(prod(5,pow(x, 2)), pow(y, 3)), x).
no
?- polynomial(sum(prod(5,pow(x, 2.1)), prod(2, x)), x).
no