【Prolog】Prologへの入門 3章

% Prologへの入門 3章 p.72, p.73の練習問題をやってみました

% 3.1 (a)
conc([], L, L).
conc([X|L1], L2, [X|L3]) :- conc(L1, L2, L3).

rm_back3(L, L1) :- conc(L1, [_, _, _], L).

% 3.1 (b)
rm_top3(L, L1) :- conc([_, _, _], L1, L).
rm_top3_back3(L, L2) :- rm_top3(L, L1), rm_back3(L1, L2).

% 3.2 (a)
last1(Item, List) :- conc(_, [Item], List).

% 3.2 (b)
last2(Item, [Item]).
last2(Item, [X|L]) :- last2(Item, L).