Prolog中空列表的奇偶函数
我试图在Prolog中创建一个偶数/奇数函数 第一个参数是整数列表,第二个参数是偶数列表,最后一个参数是奇数函数列表 这就是我目前拥有的:Prolog中空列表的奇偶函数,prolog,Prolog,我试图在Prolog中创建一个偶数/奇数函数 第一个参数是整数列表,第二个参数是偶数列表,最后一个参数是奇数函数列表 这就是我目前拥有的: even_odd([], [], []). even_odd([H|T], [H|E], O) :- 0 is X mod 2, even_odd(T, E, O). even_odd([H|T], E, [H|O]) :- 1 is X mod 2, even_odd(T, E, O). 这适用于除空([])列表之外的所有
even_odd([], [], []).
even_odd([H|T], [H|E], O) :-
0 is X mod 2,
even_odd(T, E, O).
even_odd([H|T], E, [H|O]) :-
1 is X mod 2,
even_odd(T, E, O).
这适用于除空([]
)列表之外的所有列表
每当我尝试空列表时,我会得到:
even_odd([], Even, Odd).
Even = Odd, Odd = [].
而不是:
even_odd([], Even, Odd).
Even = [], Odd = [].
有人能帮我吗?多谢各位
编辑:我已经看过了,但它对空列表不起作用。SWI Prolog的输出是正确的,它只是指出偶数和奇数具有相同的值,即空列表。您的程序是正确的。:)@DanielLyons非常感谢。难道
X
不应该被H
取代吗?很好的捕获@SamSegers!