如何从列表中删除零值?

时间:2015-09-12 15:27:07

标签: list prolog

如何在连接两个列表后从结果列表中删除零值?

这是我为合并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).

1 个答案:

答案 0 :(得分:0)

以下代码将带有零的列表作为第一个参数,将列表作为第二个参数列出。它通过剥离第一个列表的头部来工作:如果它是零,则第二个列表不需要它。当你点击空字符串时,你就完成了。 prolog现在将回溯并建立第二个列表。

public interface IPlayer { string Name { get; set; } } public class Player : IPlayer { string Name { get; set; } } IPlayer playerDto = player as IPlayer; Player player = Player(playerDto);

没有对它进行测试,但我很确定它应该给你

delete([],[]). delete([0|T], L) :- delete(T, L). delete([H|T], [H|T2]) :- delete(T, T2).