, . . . , . , . , , , , . , , -
I. Prolog
. :
{...;:-.... 7 (...):-... %
(■ ■ ■):-
...,!, %
(...) ":
, , - . , . Prolog, , . .
, . . , : sumlist< List, Sum)
, .
sumlist< [ ], 0).
sumlist([ First! Rest], Sum):-sumlist (Rest, SumO), Sum is X + Su0.
, , , . , . sumlist Prolog ? , , is SumO. , .
|
|
sumlist (List, Sum):-
% TSffi L i s t, 0, Su -m). s-l
I TotalSum - PartialSum + List sumlistt [], Sum, Sum). % sumlisti First i Rest ], PartialSum, TotalSum):-
MewPartialSm is PartialSum + First,
sumlistt Rest, NewPartialSum, TotalSum).
, Prolog .
sur.J , -
, . sumlist, sumlist/. , PartialSum, . (accumulator argument). -, .
8.
.
reverse; List, ReversedList)
ReversedList , List, . , :
reverse (;], I ]),
reverse [X Rest], Reversed):-
reverse Rest, RevRest),
conc< RevRest, [X], Reversed). %
- . , - conc(RevRest, [X], Reversed), , RevRest. , , , , . - ( ) " ". , :
reverse (List, Reversed):-
reverse(List, [ ], Reversed!. % reverse! List, PartReversed, Reversed):
% Reversed List PartReversed reverse ([ ], Reversed, Reversed). revise ([X i Rest], PartReversed, Totalizers ed):-
reverse! Rest, [X PartReversed], TotalReversed). %
\
( , ), .
8.5.5.
Prolog, . , , , , . , 9 10, . . , , , .
|
|
Prolog , functor. . functor< A, f, i::o; 100 :
■Pi
, , :
[6] = 1
184 !, Prolog
60- 1. Prolog : (60, , 1)
60- , : - f {_,...,_, 1,_,...,_) % 60- 1
, , - , N. :
X = [60]
Prolog : [ 60, , X)
, 100 60- . . , , : [60] - [60] + 1
Prolog : 100 functor, . . , ( ) , . , , , . : ;= 1,- X:- 2; X:= 3
Prolog :
X - [1 | Restl] % X = 1, Restl -
Restl = [2 | Kest2] X = 2, Rest2 - Rest2 = [3 I Rest3] % X = 3
X - [1, 2, 3 | Rest3]. , X, , . , . , , , , , , .
, , 3 4 (. 4.4). ( X), { Y), ( ) (-
|
|
8.
V), . , , . U V 4.4 , . . , 15 , 15 : Du - u{_,_,_,_,_,_,_,_,_,_,_,_.,_,,_;
, (X,Yj = (1,1!. 8- . , , 8- Du 1 (.. X) : arg(8, Du, 1)
Du Du - <_,_,_, _,_,_,_.!,_, _,_,_, _,_,_)
(X, Y) = (3,3), 8- ,
:
arg(3, Du, 3) I = 3
, 8- 1. . 4.4.