Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- succ(?Int1, ?Int2)
- True if Int2 = Int1+ 1 and Int1>=0. At least one of the
- arguments must be instantiated to a natural number. This predicate
- raises the domain-error not_less_than_zero if called with a negative
- integer. E.g. succ(X, 0) fails silently and succ(X, -1) raises a
- domain-error.
- add(0, Y, Y).
- add(X, Y, Z) :-
- succ(PredX, X),
- add(PredX, Y, PredZ),
- succ(PredZ, Z).
- subtract(X, 0, X).
- subtract(X, Y, Z) :-
- succ(PredY, Y),
- succ(PredX, X),
- subtract(PredX, PredY, Z).
- add(0, 0, 0).
- add(0, Y, Y).
- add(X, 0, X).
- add(X, Y, Z) :-
- nonvar(X),
- succ(PredX, X),
- (nonvar(Z) ->
- succ(PredZ, Z), add(PredX, Y, PredZ)
- ;
- add(PredX, Y, PredZ), succ(PredZ, Z)
- ).
- add(X, Y, Z) :-
- nonvar(Y),
- add(Y, X, Z).
- subtract(0, 0, 0).
- subtract(X, 0, X).
- subtract(X, X, 0).
- subtract(X, Y, Z) :-
- add(Y, Z, X).
Add Comment
Please, Sign In to add comment