DOMAINS
list = integer*
PREDICATES
genl(integer, integer, list)
CLAUSES
genl(N2,N2,[]):-!.
genl(N1,N2,[N1|L]):-N1<N2, N=N1+4,
genl(N,N2,L).
GOAL
write("N="),readint(N),K=4*(N+1)-2,
genl(2,K,L),write(L),nl.
:
N=5
[2,6,10,14,18]
3
4 20 .
:
DOMAINS
list = integer*
PREDICATES
genl1(integer, integer, list)
len(integer, list)
CLAUSES
genl1(N2,N2,[]):-!.
genl1(N1,N2,[N1|L]):-N1<N2, N=N1+1, genl1(N,N2,L).
len(0,[]).
len(X,[_|L]):-len(X1,L), X=X1+1.
GOAL
genl1 (4,21,L),write(L),nl,
len(X, L),write(" =",X),nl.
:
[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
=17
4
, L.
:
DOMAINS
list = integer*
PREDICATES
member(integer, list)
CLAUSES
member(X,[X|_]):-write("yes"),!.
member(X,[]):-write("no"),!.
member(X,[_|L]):- member(X, L).
GOAL
L=[1,2,3,4], write(L),nl, write("X="),readint(X),
member(X, L),nl.
:
1- :
[1,2,3,4]
X=3
yes
2- :
[1,2,3,4]
X=5
no
5
L1=[1,2,3], L2=[10,11,12,13,14,15] L3.
:
DOMAINS
list = integer*
PREDICATES
genl1(integer,integer,list)
append(list,list,list)
CLAUSES
genl1(N2,N2,[]):-!.
genl1(N1,N2,[N1|L]):-N1<N2,N=N1+1,genl1(N, N2, L).
append([],L,L).
append([X|L1],L2,[X|L3]):-append(L1,L2,L3).
GOAL
genl1(1,4,L1),write("L1=",L1),nl,
genl1(10,16,L2),write("L2=",L2),nl,
append(L1,L2,L3),write("L3=",L3),nl.
:
L1=[1,2,3]
L2=[10,11,12,13,14,15]
L3=[1,2,3,10,11,12,13,14,15]
6
, , .
:
DOMAINS
list = symbol*
PREDICATES
del(symbol,list,list)
CLAUSES
del(X,[X|L],L).
del(X,[Y|L],[Y|L1]):-del(X,L,L1).
GOAL
L=[, , , , , , ],write("L=",L),nl,
write("X="),readln(X),
del(X,L,L1),write("L1=",L1),!;
write(" "),nl.
:
1- :
L=["","","","","","",""]
X=
L1=["","","","","",""]
2- :
L=["","","","","","",""]
X=
7
, . .
:
DOMAINS
list = symbol*
|
|
PREDICATES
del(symbol,list,list)
ins(symbol,list,list)
CLAUSES
del(X,[X|L],L).
del(X,[Y|L],[Y|L1]):-del(X,L,L1).
ins(X,L1,L):-del(X,L,L1).
GOAL
L=[olga, oksana, toma, dima],write("L=",L),nl,
write("X="),readln(X),
ins(X,L,L1),write("L1=",L1),nl, fail.
:
L=["olga","oksana","toma","dima"]
X=vera
L1=["vera","olga","oksana","toma","dima"]
L1=["olga","vera","oksana","toma","dima"]
L1=["olga","oksana","vera","toma","dima"]
L1=["olga","oksana","toma","vera","dima"]
L1=["olga","oksana","toma","dima","vera"]
8
.
:
DOMAINS
list=integer*
PREDICATES
sum_list(list, integer)
CLAUSES
sum_list([],0).
sum_list([X|L],S):-sum_list(L,S1),S=S1+X.
GOAL
L=[1,2,3,4,5],sum_list(L,S), write("S=",S).
:
S=15
1. [2, 4, 6, 8, 10] .
2. [1, 3, 5, 7, 9] [2, 4, 6, 8, 10] .
3. [3, 6, 9, 12, 15, 18] .
4. N , 10. 5 .
5. [3, 6, 9, 12, 15]
6. [6, 5, 4, 3, 2]
7. [7, 5, 3, 1]
8. N , 10.
:
1) ;
2) ;
3) ;
4) .