34 lines
420 B
Prolog
34 lines
420 B
Prolog
%L2
|
|
%Q5
|
|
takeout(E,[E | L1],L1).
|
|
|
|
takeout(E,[F | L1],[F | L2]):-
|
|
takeout(E,L1, L2).
|
|
|
|
|
|
|
|
%Q7
|
|
|
|
inverse([E],[E]).
|
|
|
|
inverse([H | L1], L):-
|
|
var(L),
|
|
inverse(L1,H2),
|
|
append(H2,[H],L).
|
|
|
|
inverse([H | L1], L):-
|
|
nonvar(L),
|
|
append(H2,[H],L),
|
|
inverse(L1,H2).
|
|
|
|
%Q8
|
|
|
|
inverse2(L1,L2):-
|
|
inverse_iter(L1,[],L2).
|
|
|
|
|
|
inverse_iter([],L2,L2):-!.
|
|
|
|
inverse_iter([E |L1],L2,R):-
|
|
inverse_iter(L1, [E | L2],R).
|