% 递归情况:在列表第n个位置插入元素
intersperse(Elem, [H|T], N, [Elem|L]) :-
N =:= 1,
intersperse(Elem, T, N, L).
% 递归情况:不在列表第n个位置插入元素
intersperse(Elem, [H|T], N, [H|L]) :-
N2 is N - 1,
intersperse(Elem, T, N2, L).
% 基本情况:插入空列表
intersperse(_, [], _, []).
% 示例
?- intersperse(5, [1,2,3,4,6,7], 5, L).
L = [1, 2, 3, 4, 5, 6, 7].