Подмножества в Prolog

Я ищу предикат, который работает следующим образом:

?- subset([1,2,3], X).
X = [] ;
X = [1] ;
X = [2] ;
X = [3] ;
X = [1, 2] ;
X = [1, 2, 3] ;
X = [2, 3] ;
...

Я видел несколько реализаций подмножества , но все они работать, когда вы хотите проверить, является ли один список подмножеством другого, а не когда вы хотите сгенерировать подмножества. Есть идеи?

17
задан Kaarel 6 February 2011 в 15:49
поделиться