Prolog-如何在列表中插入元素

Prolog-如何在列表中插入元素,prolog,Prolog,如果在Prolog中有一个列表,比如X=[1,2,3,4,6,7],那么如何将元素5添加到列表中,使X=[1,2,3,4,5,6,7]?第一个参数:新元素 addElement(X, [], [X]). addElement(X, [Y | Rest], [X,Y | Rest]) :- X @< Y, !. addElement(X, [Y | Rest1], [Y | Rest2]) :- addElement(X, Rest1, Rest2). 第二个参数:旧列表 第三个参数:包

如果在Prolog中有一个列表,比如X=[1,2,3,4,6,7],那么如何将元素5添加到列表中,使X=[1,2,3,4,5,6,7]?

第一个参数:新元素

addElement(X, [], [X]). 
addElement(X, [Y | Rest], [X,Y | Rest]) :- X @< Y, !.
addElement(X, [Y | Rest1], [Y | Rest2]) :- addElement(X, Rest1, Rest2).
第二个参数:旧列表

第三个参数:包含新元素的新列表

addElement(X, [], [X]). 
addElement(X, [Y | Rest], [X,Y | Rest]) :- X @< Y, !.
addElement(X, [Y | Rest1], [Y | Rest2]) :- addElement(X, Rest1, Rest2).

SortedList将是您要查找的结果

append([1,2,3,4,6,7], [5], Z), sort(Z, SortedList).

我无法获得输出。增编[5、[1,2,3,4]、[6,7]。虽然此代码可能会回答该问题,但提供有关其为什么和/或如何回答该问题的其他上下文将显著提高其长期价值。请您的答案添加一些解释。@Priyaranjan您需要澄清您的原始问题。如果您期望的结果不是错误,请使用“编辑”对于查询补遗5、[1,2,3,4]、[6,7]……请显示您在解决此问题时所做的任何尝试。插入操作后是否需要对列表进行排序?