когда на самом деле порядок элементов не имеет значения, и только один из них должен быть указан как подмножество, поскольку они представляют один и тот же набор.
предикат, который работает так:
?- subset([1,2,3], X).
X = [] ;
X = [1] ;
X = [2] ;
X = [3] ;
X = [1, 2] ;
X = [1, 2, 3] ;
X = [2, 3] ;
...
Я видел некоторыеsubset
реализации, но все они работают, когда вы хотите проверить, является ли один список подмножеством другого, а не когда вы хотите сгенерировать подмножества. Есть идеи?