0

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.

Community
  • 1
  • 1

0 Answers0