, .
, X=[a,b,c,d] .
"|" ( ). . , , . , X=[a,b,c,d] X=[Y|Z], Y=a Z=[b,c,d]. , , , =[] X=[Y|Z], Y=a Z=[ ]- , . , . , , .
: 1) =, Y=[b,c,d] Z=[X|Y], Z=[a,b,c,d] 2) =, Y=b, Z=[a|b], Z=[a,b]. Y - , Y - . , , , .
. , , clauses -.
. , : , , , , , , "", .
, , , . , . -. , .
X Y "(,)". . X X, :
(,[ |_]).
"_". :
(,[ Y |_]):- X=Y.
X "", .
(,[_|Y]):- (,Y).
: " X , X ". , .
. X , . , "" . "" , .. .
|
|
:
(,[|_]).
(,[_|Z):-
(,Z).
(,[,,,])
.
. "" , . :
([,,,,]). ([,,,,, ]).
(,):-
([|Z]),
(Y,Z).
(,[|_]).
(,[_|Z]):-
(,Z).
"" , .
. , , ..
(,Y,Z):-
(Z,),
(Z,Y).
n - . n- , 1, .. :
n (1,,[|_]).
, , , , .. ( ). :
n (N,,[_|]):-
= N-1,
n (,,).
n(3,X,[a,b,c,d,e]) = :
n(l,E,[E|_]).
n(N,E,[_|L]):-
C=N-1,
n(C,E,L).
, . 3 , , .
n(3,E,[a,b,c,d]).
n(1,,[|_]). : 3≠1
n(3,E,[a,b,c,d]).
n(N,E,[_|L]):- C=N-1,n(C,E,L).
n(3,E,[a|b,c,d]:- 2=3-1,n(2,E,[b,c,d])).
n(2,E,[b,c,d]).
H n(1,E,[E|_]). : 2≠1
n(2,E,[b,c,d]).
n(N,E,[_|L]):- C=N-1,n(C,E,L).
n(2,E,[b,c,d]):- 1 =2-1,n(1,E,[c,d]).
n(1,E,[c,d]).
H n(1,E,[E|_]). : 1=1
n(1,c,[c|d]).
, n(l,c,[c,d])
, n(2,c,[b,c,d])
, n(3,c,[a,b,c,d])
solution: E=c
. , , , , ..
([], X).
, . :
([], X).
([,Y|Z], R):-
X<=Y,
([|Z], R);
X>Y,
([|Z], R).
.
([b,,,], X)
=[].
, ">" "<" .
. , () . . , , :
|
|
([], []).
, . :
([_|_], [_|_]):-
(_, _),
(_, _).
: , ( _), (_), .
. , - . :
domains
=symbol*
predicates
(, )
(symbol, symbol)
clauses
([], []).
([_|_], [_|_]):-
(_, _),
(_, _).
("I',"").
("study","").
("language","").
("PROLOG","").
("in","").
("the university","").
(["I","study","language","PROLOG","in","the university"],P)
=["","","","","",""]
:
(,["","","","","",""])
.
, . , , . , . , .
. :
1) , . :
(, [E|Y], Y).
, Y;
2) , . :
(, [X|Y], [X|Z]): -
(,Y,Z).
, [X|Y] , Y .
:
(, [|Y], Y).
(E,[E,Y],[X|Z]):-
(, Y, Z).
. . , ( , ), . .
,
([ ], [ ]).
L, L, Q R :
(L,[M|R ]):-
(L,),
(,L,Q),
(Q,R),
!.
([, t, r, a, b], S)
S=[a, b, e, r, t]