我需要在 中定义segment(X,Y)
,X
作为连续的一系列元素Y
,并且我必须在我的解决方案中使用 cut 。
我应该如何使用cut?如果我使用!
,那么我将不会获得true
第一个标题。这就是我所拥有的:
segment([],_).
segment([H|T],[H|Y]) :- segment(T,Y).
segment([H|T],[X|Y]) :- segment([H|T],Y).
这是我的输出
34 ?- segment(X,[1,2,3,4]).
X = []
Action? ;
X = [1] ;
X = [1, 2] ;
X = [1, 2, 3] ;
X = [1, 2, 3, 4] ;
X = [1, 2, 4] ;
X = [1, 3] ;
X = [1, 3, 4] ;
X = [1, 4] ;
X = [2] ;
X = [2, 3] ;
X = [2, 3, 4] ;
X = [2, 4] ;
X = [3] ;
X = [3, 4] ;
X = [4] ;