我有一个像[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]]
而已。