の連続した一連の要素としてsegment(X,Y)
を定義する必要があり、ソリューションでカットを使用する必要があります。X
Y
カットの使い方は?を使用すると、最初のヘッダーの後に!
取得できません。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] ;