Wie kann ich alle möglichen Sätze der Elemente einer Liste mit der aktuellen Länge generieren?Erhalten Sie alle Sätze der Liste in Prolog
?- get_set(X, [1,2,3]).
X = [1,1,1] ;
X = [1,1,2] ;
X = [1,1,3] ;
X = [1,2,1] ;
X = [1,2,2] ;
X = [1,2,3] ;
X = [1,3,1] ;
X = [1,3,2] ;
X = [1,3,3] ;
.....
X = [3,3,2] ;
X = [3,3,3].
UPD: Es gibt eine gute Antwort von Sharky gegeben. Aber vielleicht ist es nicht das Beste. Hier ist eine andere:
get_set(X,L) :- get_set(X,L,L).
get_set([],[],_).
get_set([X|Xs],[_|T],L) :- member(X,L), get_set(Xs,T,L).
müssen Sie alle auf einmal erstellen oder nur die Beziehung definieren und einer Suche erlauben, alle Ergebnisse zu zeigen? –