. . . , . , , , . , , .
. .
: . ( ) , . , :
,
; , , , .
, "|". , [1|2,3] 1 , [2, 3] . [ ]. , .
.
11. . : , . , . X , L, :
add(X,L, [X|L]).
12. . X L
away(X,L,L1),
L1 L, X.
away : X , . X , :
away(X, [X|T],T).
away(X, [Y|T], [Y|T1]): away(X,T,T1).
13. . :
member(X,L).
L , , L. : X L, X . , , , :
member(X, [X| _ ]).
member(X, [ _ | T ]): member(X,T).
, , .
|
|
, , .
14. () .
conc(L1,L2,L3).
L1 L2. L3 .
:
(1) , :
ñonc([ ],L,L).
(2) , , .. [X|L1]. L2 [X|L3], L3 L1 L2, ..
conc([X|L1],L2,[X|L3]):conc(L1,L2,L3).
15. . unik : . : ( member), , .
unik([ ],[ ]).
unik([H|T], L): member(H,T), unik(T,L).
unik([H|T], [H|L]): unik(T,L).
16. .
reverse(L1,L2).
L1 L2 , L2 L1, .
reverse(L1,L2):reverse1(L1,[],L2).
reverse1([],L,L).
reverse1([H|T],L1,L2):reverse1(T,[H|L1],L2).
reverse , reverse1, , , . . reverse1. , , . , , , , .. .
17. .
sum(L,S).
S L. . :
sum([ ],0).
sum([H|T], S1):
sum(T,S2),S1=S2+H.
: , , H T; S1, T S2 S1=S2+H. , : sum . , .
. [3,6,1]. :
sum([3|6,1],S) âûçûâàåò sum([6,1],S1) è S=S1
sum([6|1],S1) âûçûâàåò sum([1],S11) è S1=S11+6.
sum([1],S11) âûçûâàåò sum([],S111) è S11=S111+1.
sum([ ],S111) , S111 0.
|
|
sum([1],S11) , S11 1.
sum([6,1],S1) , S1 7.
sum([3,6,1],S) , S 10.
, .
sum(L,S):sum1(L,0,S).
sum1([ ],S,S). % , ,
sum1([H|T],S1,S):
S2=S1+H,
sum1(T,S2,S).
, : sum1, S, . : , , .
:
sum1([3|6,1], 0, S) âûçûâàåò sum1([6,1], 3, S).
sum1([6|1], 3, S) âûçûâàåò sum1([1], 9, S).
sum1([1],9, S) âûçûâàåò sum1([], 10, S).
sum([ ], 10, S) , S 10.
:
sum1([1], 9,1 0)
sum1([6,1], 3,1 0)
sum1([3,6,1], 0, 10)
18. max, :
max(X,Y,X): X>=Y.
max(X,Y,Y): X<Y.
maxlist(LIST,MAX), MAX LIST, :
maxlist([X],X).
maxlist([X,Y|TAIL],MAX):
maxlist([Y|TAIL],MAXTAIL),
max(X,MAXTAIL,MAX).
: . , X Y, MAXTAIL MAX X MAXTAIL. , X MAXTAIL.