Mat*_*att 5 substring list set prolog dcg
所以我为powerset得到了这个:
powerset([], []).
powerset([H|T], P) :- powerset(T,P).
powerset([H|T], [H|P]) :- powerset(T,P).
Run Code Online (Sandbox Code Playgroud)
这会生成所有列表集.是否可以按列表顺序生成所有集合.
例:
List = [a,b,c]
Run Code Online (Sandbox Code Playgroud)
我想得到
[a],[a,b],[a,b,c],[b],[b,c],[c]
Run Code Online (Sandbox Code Playgroud)
请注意[a,c]
,此子集列表中没有,因为这些是从左侧开始向右侧的子集.
我尝试过使用append和recursion的组合,但这并不是我想要的.在这一点上有点难过.
谢谢.
怎么样
powerset(L, [H|T]):-
append([H|T], _, L).
powerset([_|L], P):-
powerset(L, P).
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3995 次 |
最近记录: |