如何删除prolog中子列表的第一个元素

时间:2017-05-22 06:31:21

标签: prolog

这样的列表:[1,[2,3,4]]
删除子列表的第一个元素,即2,
结果如下:[1,[3,4]]

1 个答案:

答案 0 :(得分:0)

这可以让你了解如何做到这一点:

rem_sublist_first([], []).

rem_sublist_first([X|Y], [X|Y2]):-
    \+ X = [_|_],
    rem_sublist_first(Y, Y2).

rem_sublist_first([[_|Y1]|Y2], [Y1|Y3]):-
    rem_sublist_first(Y2, Y3).

test:-
    rem_sublist_first([1,[2,3,4]], [1,[3,4]]),
    rem_sublist_first([1,2,3,[4,5,6]], [1,2,3,[5,6]]).

我建议你学习prolog列表,它们对于任何类型的prolog程序都是必不可少的,所以如果你是编写prolog代码的话,这是值得投资的。