% Kétjegyű számok:
elso_jegy(1).
elso_jegy(2).
elso_jegy(3).
elso_jegy(4).
elso_jegy(5).
elso_jegy(6).
elso_jegy(7).
elso_jegy(8).
elso_jegy(9).
masodik_jegy(0).
masodik_jegy(1).
masodik_jegy(2).
masodik_jegy(3).
masodik_jegy(4).
masodik_jegy(5).
masodik_jegy(6).
masodik_jegy(7).
masodik_jegy(8).
masodik_jegy(9).
ketjegyu(X):- elso_jegy(A), masodik_jegy(B), X is 10*A+B.
%--------------------------------------------------------------------------------------------
% Ugyanez másként:
between(N,M,N):- N =< M.
between(N,M,I):- N < M, N1 is N+1, between(N1,M,I).
% A between és az "I>=N, I=<M" közti
különbség: az előbbi felhasználható az
őt kielégítő
% változóértékek legenerálására,
illetve ciklus
szimulálására.
elso_j(A):- between(1,9,A).
masodik_j(A):- between(0,9,A).
ket_j(X):- elso_j(A), masodik_j(B), X is 10*A+B.
ketjegyuek:- ket_j(X), write(X), nl, fail.
ketjegyuek.
% A fail
a mindig hamis logikai konstans; az nl egy
soremelés nyomtatása a képernyőre.
%--------------------------------------------------------------------------------------------
% Ugyanez megint maskent:
ketjegyuek2:- between(10,99,X), write(X), nl, fail.
ketjegyuek2.