26 lines
853 B
Prolog
26 lines
853 B
Prolog
short_circuit :-
|
|
( a_or_b(true, true) -> writeln('==> true'); writeln('==> false')) , nl,
|
|
( a_or_b(true, false)-> writeln('==> true'); writeln('==> false')) , nl,
|
|
( a_or_b(false, true)-> writeln('==> true'); writeln('==> false')) , nl,
|
|
( a_or_b(false, false)-> writeln('==> true'); writeln('==> false')) , nl,
|
|
( a_and_b(true, true)-> writeln('==> true'); writeln('==> false')) , nl,
|
|
( a_and_b(true, false)-> writeln('==> true'); writeln('==> false')) , nl,
|
|
( a_and_b(false, true)-> writeln('==> true'); writeln('==> false')) , nl,
|
|
( a_and_b(false, false)-> writeln('==> true'); writeln('==> false')) .
|
|
|
|
|
|
a_and_b(X, Y) :-
|
|
format('a(~w) and b(~w)~n', [X, Y]),
|
|
( a(X), b(Y)).
|
|
|
|
a_or_b(X, Y) :-
|
|
format('a(~w) or b(~w)~n', [X, Y]),
|
|
( a(X); b(Y)).
|
|
|
|
a(X) :-
|
|
format('a(~w)~n', [X]),
|
|
X.
|
|
|
|
b(X) :-
|
|
format('b(~w)~n', [X]),
|
|
X.
|