在Prolog中形成连续的数字列表

时间:2018-04-02 00:44:34

标签: prolog

我有一个像[11,12,7,8,9,10,4,1]这样的列表,需要输出[[11,12], [7,10], 4, 1]]。如果连续数的计数大于2,那么只需要该序列的第一个和最后一个数。

我尝试的是 -

list([A, B|C], [A], [B|C]) :-
    A + 1 =\= B.
list([A, B|C], [A|T], Back) :-
    A + 1 =:= B,
    list([B|C], T, Back).

break([], []).
break(L, [H | T]) :-
    list(L, H, Back),
    break(Back, T).

我得到的是[[11,12], [7,8,9,10], [4], [1]]而已。

0 个答案:

没有答案