嗨,我必须在 Prolog 中解决一个问题,听起来像这样:删除列表中所有增加的子列表。例如列表 [1,[2],[3,4],6] 变为 [1,6]。到目前为止,我已经尝试过了,但它不起作用。请问有什么帮助吗?
domains
el=integer
list=el*
element=integer;list
lista=element*
goal
elim([1,[2],[3],4)],L),
write(L).
predicates
elim(lista,lista)
is_increasing(lista)
is_list(lista)
clauses
is_increasing([A,B|T]) :-
B>A,
is_increasing([B|T]).
is_list([_|_]).
is_list([]).
elim([],[]).
elim([E|Es],[E|Ts]) :-
is_list(E),
is_increasing(E),
elim(Es, Ts).