I'm attempting to create an even/odd function in Prolog.
The first parameter is a list of integers, the second parameter is a list of Even numbers, and the last parameter is the list of Odd functions.
This is what I have currently:
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).
This works for every list except for the empty ([]
) list.
Whenever I try the empty list I get:
even_odd([], Even, Odd).
Even = Odd, Odd = [].
Instead of:
even_odd([], Even, Odd).
Even = [], Odd = [].
Can someone please help me? Thank you.
Edit: I have already looked at this but it didn't work for empty list.