.


:




:

































 

 

 

 





 

. , "!".

:

1) ;

2) ;

3) .

.

1. . , ( 1, 1, 2, 3, 5, 8,..., , ).

118

fib (0,_,1).

fib (1,1,1).

fib (N,G,H): - fib (N-l,F,G), H is F+G.

 

 

?- fib (0_,F).

 

F = 1, . fib(-l,FO,Fl), , , fib(-2,..,..) , .. .

, , .

 

119

fib (0,_,1): -!.

fib (1,1,1): -!.

fib (N,G,H): - fib (N-l,F,G), H is F+G.

 

fib

 

?- fib(0_,F).

 

F=l. .

2. .

 

max(X, Y, ).

=, X>=Y, M=Y, X<Y. :

 

max(X,Y,X):-X>=Y.

max(X, Y, Y): - X<Y.

 

. , :

 

X>=Y = M=Y.

 

:

 

max(X,Y,X):-X>=Y,!

max(X, Y, Y).

 

3. .

 

120

.

D

: - , . (1)

: -D,!, . (2)

: -F, G, H. ()

?.

, (1) (2), (1) - (2). (2) (3). (3) , (2) : (2) , (1), . (2) : -D, ., (3) D.

, . fail.

fail . .

: .

 

121

oc(cpm).

(msdos).

(unix).

-:-(X), write(X), fail.

?--.

 

, . , . .

. , :

 

[,,,,].

 

, , , . , .

.

, [X | Y] - . Y - .

.

:

1) [] - :

2) [X | Y] - , Y - .

, .

1) , ;

2) , , ( ), ( ).

I: .

 

122

([], 0).

([|], N):- (, ), N is M+1.

?- ([, , ]), X).

: =3.

 

2: .

 

123

(X, [X | Y]).

(X, [A |Y ]): - (X,Y).

?- (4,(1,3,4,9]).

:.

: , .

3: .

:

) , [ ] , ;

) , [X|Y], Y ( [|]).

124

([ ], , ).

([XIY], , [X | ]):-(Y, , ).

? (L,[.R],(,,,,,]).

:

L=[,]. =[ ,]. L=[,,,]. R=[o].

append (- -).

(!).

125

append([ ], L, L).

append([A I 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):-!. , :

 

=[]

Y=[l,2].

 

4. .

126 , , , - - -.

126

(X. [X I Y], Y): -!.

(X. [Z I Y], [Z I W]): - (X, Y, W).

: , , .

, X. "!" .

:

 

(,[ ],[]).

(X, [X | Y], W):- (X, Y, W).

(X, [Z I Y], W):- (X, Y, W).

 

: , , , , , , .

5: .

127 , N X.

 

127

([X | Y], 1, X).

([W | Y], N, X):- N is M+l, (Y, M, X).

6: .

128

max ([X], X).

max ([X | Y], X):- (Y, W), X>W,!.

max ([X | Y], W):-max (Y, W).

: - , , , , .

7: .

- . , - . - , .

 

129

([X], [X]).

([X I Y], Z):- (Y, W), (W, [X], Z).

, .

Arity-Prolog , , , .

 





:


: 2016-11-12; !; : 337 |


:

:

.
==> ...

1291 - | 1275 -


© 2015-2024 lektsii.org - -

: 0.022 .