使用prolog中的conc操作删除列表中的最后一项

时间:2014-12-15 08:09:54

标签: list prolog concatenation

如何使用conc操作编写prolog程序以删除列表中的最后一项。

cut_last( L1, L2)

以下是我的答案,如果我错了或者这是正确的,请有人纠正我吗?

cut_last(L1,L2):- conc(L2,[_],L1)

1 个答案:

答案 0 :(得分:1)

您可以使用append/3来实现这一目标。

cut_last(L1, L2):-
    append(L2, [_], L1).

该条款声明L2 L1没有最后一个元素,如果将任何长度为1的列表附加到L2,您将获得与L1统一的内容。

?- cut_last([1,2,3],L).
L = [1, 2] ;
false.