level 1
paruns([],[]).
paruns(L,R):-
lianxu_even_odd(L,RH),
gettail(L,RH,LT),
paruns(LT,RT),
R = [RH | RT].
lianxu_even_odd(L,RH):-
L = [H|T],
abs(H,Habs),
EvenOdd is Habs mod 2,
lianxu_even_odd(L,EvenOdd,RH).
lianxu_even_odd([],_,[]).
lianxu_even_odd(L,EvenOdd,RH):-
L= [H|T],
abs(H,Habs),
EvenOdd is Habs mod 2,
lianxu_even_odd(T,EvenOdd,R),
RH = [H|R].
lianxu_even_odd(L,EvenOdd,RH):-
L= [H|T],
abs(H,Habs),
\+EvenOdd is H mod 2,
RH=[].
gettail(L,[],L).
gettail(L,R,LT):-
L=[H|T],
R=[RH|RT],
H=RH,
gettail(T,RT,LT).
abs(H,Habs):-
H > 0,
Habs = H.
abs(H,Habs):-
H < 0,
Habs = -H.
abs(0,0).
2017年04月10日 05点04分