. , !.
:
1) ;
2) ;
3) .
.
1. . , ( 1, 1, 2, 3, 5, 8,..., , ).
fib (0, _, 1).
fib (1,1,1).
fib (N,G,H): - fib (N1,F,G), H is F+G.
?- fib (0, _,F).
F=1, . fib(l,F0,F1), , ,
fib(2,..,..) .., .. .
, , .
fib (0, _,1): -!.
fib (1,1,1): -!.
fib (N,G,H): - fib (N1,F,G), H is F+G.
fib
?- fib(0, _,F).
F=1. .
2. . max(X, Y, ).
=, X>=Y, M=Y, X<Y. :
max(, Y, X): - X>=Y.
max(, Y, Y): - X<Y.
. , :
X>=Y = M=Y.
:
max(, Y, X): - >=Y,!.
max(, Y, Y).
3. .
B.
D.
: - , . (1)
: -D,!, . (2)
: -F, G, H. (3)
?.
, (1) (2), (1) (2). (2) (3). (3) , (2) : (2) , (1), . (2) : -D, ., (3) D.
, . fail.
fail . .
|
|
4: .
(cpm).
(msdos).
(unix).
-:-(X), write(X), fail.
?--.
, . , . .
. , :
[,,,,].
, , , . , .
.
, [X | Y] , Y .
.
:
1) [ ] ;
2) [X | Y] , Y .
, . :
1) , ;
2) , , ( ), ( ).
1. .
([], 0).
([|], N):- (, ), N is M+1. [|],
?- ([, , ]), X).
: =3.
2. :
(X, [X | Y]). ,
(X, [ |Y ]): (X,Y).
?- (4,[1,3,4,9]).
: .
: , .
3. . :
) ,
[] , ;
) , [X|Y], Y ( [X|T]).
([ ], , ).
([X|Y], , [X | ]):-(Y, , ).
? (L, [..R],[,,,,,]).
:
L=[,].
R=[,,].
L=[,,,].
R=[].
append (- ).
(!).
Append ([ ], L, L).
append([A | B], C, [A | D]):- append(B, C, D).
?-append(X,Y, [1,2]).
:
X=[ ]
Y=[l,2]
X=[l]
Y=[2]
X=[l,2]
Y=[ ].
|
|
append([ ], 1, 1):-!. , :
X=[ ]
Y=[l,2].
4. . , , , -.
(X, [X | Y], Y): -!.
(X, [Z | Y], [Z | W]): - (X, Y, W).
: , , .
, X. ! .
:
(X,[ ], [ ]).
(X, [X | Y], W):- (X, Y, W).
(X, [Z | Y], W):- (X, Y, W).
: , , , , , , .
5. . , N X.
([X | Y], 1, X).
([W | Y], N, X):- N is +1, (Y, , X).
6. .
max ([X], X).
max ([X | Y], X):- max (Y, W), >W,!.
max ([X | Y], W):- max (Y, W).
: , , , , .
7. . . , . , .
([X], [X]).
([X | Y], Z):- (Y, W), (W, [X], Z).
, .
Arity-Prolog , , , .