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).
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.