【发布时间】:2019-11-21 15:52:14
【问题描述】:
我想从列表中删除/更新满足特定条件的所有列表。
示例(我想做的):
列表:[ [a,b,c], [x,y,z] [a,b], [b,a,c], [b] ]
标准:不包含a。
结果:[[x,y,z], [b]].
我尝试过的:
criterion(A, L, Small_List):-
member(Small_list,L), member(A,Small_list).
remove_lists(A,L,L1):-
criterion(A,L, Small_List), select(Small_List,L,Q), remove_lists(A, Q, L1).
当我尝试trace, remove_lists(a, [ [a,b,c], [x,y,z] [a,b], [b,a,c], [b] ], L1). 并按照 GUI 调试器进行操作时,我看到相应的列表已被删除。然而,结果总是 False,虽然我期待 L1 = [[x,y,z], [b]].
我做错了什么?如何修改由给定标准选择的列表?例如,假设我想保留包含“a”的列表,但我想从所有列表中删除“a”,如下所示:
输入 = [ [a,b,c], [x,y,z], [a,b], [b,a,c], [b] ],输出 = [ [b,c], [x,y,z], [b], [b,c], [b] ]
【问题讨论】:
标签: prolog