Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Define and test the PROLOG predicates described below. Each of your predicates m

ID: 3724401 • Letter: D

Question

Define and test the PROLOG predicates described below. Each of your predicates must have the same name and signature as the examples below. Your predicates must behave properly on all instances of valid input types. Please write in PROLOG.

3) Segregate

Define a predicate segregate/3 that takes a list of integers as an argument and

generates two lists, the first containing containing the even numbers from the original

list and the second sublist containing the odd numbers from the original list. Your

predicate should have the signature segregate(List, Even, Odd).

Examples:

?- segregate([8,7,6,5,4,3], Even, Odd).

Even = [8,6,4]

Odd = [7,5,3]

?- segregate([7,2,3,5,8], Even, Odd).

Even = [2,8]

Odd = [7,3,5]

?- segregate([-4,11,-7,9,0], Even, Odd).

Even = [-4,0]

Odd = [11,-7,9]

?- segregate([5,13,29], Even, Odd).

Even = []

Odd = [5,13,29]

?- segregate([], Even, Odd).

Even = []

Odd = []

Explanation / Answer

The code for the following is given and the predicate is having signature segregate(List, Even, Odd)

segregate([],[],[]).
segregate([H|T],[H|X],Odd):- 0 is H mod 2,!,segregate(T,X,Odd).
segregate([H|T],Even,[H|Y]):- segregate(T,Even,Y).

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote