3.1. a) conc(L1, [_,_,_], Li
) ({_,_,_ I L2 ],[_,_,_],L)
3.2. a) last! Item, List):-
cone(_, [Item], List).
6) last (Item, [Item]),
lastl Item, [First | Rest]): last(Item, Rest).
3.3. evenlength ([ ]).
Evenlength ([First I Rest]): oddlength(Rest).
oddlength([First 1 Rest]):-evenlength! Rest}.
3.4. reverse ([],()>.
reverse! [First I Rest], Reversed):-reverse! Rest, ReversedRest), concl ReversedRest, [First], Reversed).
3.5. % reverse
palindrome[ List):-
reverse! List, List). % , % reverse palindrome 1([]). palindrcmel([_]). palindrome 1(List):-
conc([First I Middle], [Firstl, List),
palindromelt Middle!.
3.6. shift,- [First I Rest], Shifted!:-
concl Rest, [First], Shifted).
3.7. translate ([),!!).
translate!!Head I Tail], [Headl I Taill]):-Leans[ Head, Headl), translate! Tail, Taill).
3.8. % ,
% Subset , Set
subset! [],[])
% First Subset
subset! [First I Rest], [First I Sub]):-
subset! Rest, Sub). subset! [First I Rest';, Sub):- % First
subset < Rest, Sub!.
3.9. dividelist(]], [], [)). %
% dividelist! [X], [X], []). %
% dividelist! [X, Y I List], [X I Listl], [Y I List2]):-dividelistt List, Listl, List2).
3.10. c=nget [ state (_,_,_,has) i!]). %
% canget! State, [Action [ Actions]):-
move(State, Action, NewState), % canget{ NewState, Actions). %
3.11. flatten! [Head I Tail], FlatList):- %
%
flatten! Head, FlatHead),
flatten! Tail, Flatrail),
cone! FlatHead, FlatTail, FlatList). flatten! [],[]). £
flatten! X, [ Xj). 4 . %
3.12. Terml = plays (jimmy, and! football, sguash)!
Term2 = plays! susan, and! tennis,
and[ basketball, volleyball)))
3.13.:- op! 300, xfx, was).
: - op { 200, xfx, of),:- opt 100, fx, the!.
.4 a] A - 1 + 0
597
6) = 1 + I +
3.15.
3.16.
3.17.
3.18.
3.19.
a) c = l + i + l + l + O
r) D-l + 1 + 0 + 1; 0=1+0+1+1;
0 = 3 + 1 + 1 + 1% %
:- (100, ,, in).:- (300, iy., concatenating).:- opt 200, y.f-, gives).:- opt 100, xtx, and).:- opt 300, fx, deleting).:- opt 100, xfx, from). % Item in [Item | List]. Item in [First | Rest]:-
Item in Rest. % concatenating (] and List gives List. Concatenating [X | LI] and L2 gives (X | L3]:-
concatenating LI and L2 gives L3. % deleting Item from (Item | Rest] gives Rest, deleting Item from [First | Rest] gives [First | HewRest] :-, deleting Item from Rest gives Hewfiest.
|
|
maxt X, Y, X!:-
X >= V. max [ X, Y, Y]:-
X < Y.
maxlist-; [X], X), * % maxlisti [X, Y | Rest], Max):- %
% maxlist) [Y | Rest], MaxRest),
max(X, MaxRest, Max). % Max -
% MaxRest
sumlist { [], 0]. sumlist{ [First | Rest], Sum):-suralistl Rest, SumRest), Sum is First + SumRest.
ordered{ [X]). 4
% ordered; [X, Y | Rest]):-
3.20.
3.21.
ordered! [Y I Rest]).
subsuml [], 0, []). subsuml [H | List], Sum, [N | Sub]):- % % * Suntl is Sum - H, subsuml List, Suml, Sub). subsum([N | List], Sum, Sub):- % N
% subsurrH List, Sum, Sub).
between! HI, 2, N1]:-N1 =< N2. between! HI, 2, X):-HI < N2,
MewHl is Ml + 1, between{ KewNl, H2, X).
:= Val3 else Anything |
- |
else Var |
Val4 |
3.22.
:- opt 900, fx, If).;- op(800, xfx, then).:- op(700, xfx, else).: - op [ 600, xfx,:-). if Vail > Val2 then Var Vail > Val2, Var - Val3. if Vail > Val2 then Anything Vail - <Val2, Vat = Val4.
: -
-