如何从列表中删除零值?
How can I remove zero values from list?
如何在连接两个列表后从结果列表中删除零值?
这是我为合并 2 个列表而编写的代码,但我不知道如何从结果列表中删除零。
代码:
merge([], [], _).
merge([H1|T1], [H2|T2], [H2|T]) :-
H1 > H2,
merge([H1|T1], T2, T),
!.
merge([H1|T1], [H2|T2], [H1|T]) :-
H1 =< H2,
merge(T1, [H2|T2], T),
!.
merge([], [H2|T2], T) :-
append([], [H2|T2], T).
merge([H1|T1], [], T) :-
append([], [H1|T1], T).
以下代码将带零的列表作为第一个参数,将不带零的列表作为第二个参数。它通过剥离第一个列表的头部来工作:如果它是零,则第二个列表不需要它。当你点击空字符串时,你就完成了。序言现在将回溯并建立第二个列表。
delete([],[]).
delete([0|T], L) :- delete(T, L).
delete([H|T], [H|T2]) :- delete(T, T2).
还没有测试过,但我很确定它应该会给你
?- delete([1,2,0,3,4,0,5],0,R). R = [1, 2, 3, 4, 5].
如何在连接两个列表后从结果列表中删除零值?
这是我为合并 2 个列表而编写的代码,但我不知道如何从结果列表中删除零。
代码:
merge([], [], _).
merge([H1|T1], [H2|T2], [H2|T]) :-
H1 > H2,
merge([H1|T1], T2, T),
!.
merge([H1|T1], [H2|T2], [H1|T]) :-
H1 =< H2,
merge(T1, [H2|T2], T),
!.
merge([], [H2|T2], T) :-
append([], [H2|T2], T).
merge([H1|T1], [], T) :-
append([], [H1|T1], T).
以下代码将带零的列表作为第一个参数,将不带零的列表作为第二个参数。它通过剥离第一个列表的头部来工作:如果它是零,则第二个列表不需要它。当你点击空字符串时,你就完成了。序言现在将回溯并建立第二个列表。
delete([],[]).
delete([0|T], L) :- delete(T, L).
delete([H|T], [H|T2]) :- delete(T, T2).
还没有测试过,但我很确定它应该会给你
?- delete([1,2,0,3,4,0,5],0,R). R = [1, 2, 3, 4, 5].