prolog programming
Your task is to write the following predicates in SWI-Prolog .
The slash and number after the predicate name give the number of parameters for the predicate. These characters are NOT part of the predicate name. So, remove/3 means that remove is a predicate with 3 parameters.
1. remove/3. Removes from the list given by the first parameter, all elements appearing in the list given by the second parameter, and returns the result in the third parameter.
Examples:
31 ?- remove([a, b, c, d, e, f], [a, d], X).
X = [b, c, e, f] ;
32 ?- remove([a, b, c, d, e, f], [], X).
X = [a, b, c, d, e, f] ;
33 ?- remove([a, b, c, d, e, f, a, a, d, e], [a, e], X).
X = [b, c, d, f, d] ;
1. members_in_common/3. Given two lists through the first two parameters, it returns the list of common elements in the third parameter.
Examples:
46 ?- members_in_common([a, b, c, d, a, b, a], [a, d, f, f, c, c, f], X).
X = [a, c, d, a, a]
Yes
47 ?- members_in_common([a, b, c, d, a, b, a], [p, q, r, s], X).
X = []
Yes
48 ?- members_in_common([a, b, c, d, a, b, a], [], X).
X = []
Yes
1. sum/2. Given two parameters, the first one being a list of numbers, return the sum of the numbers in the list in the second parameter.
Examples:
sum([3, 5, -7, 8], X).
X = 9
sum([3], X).
X = 3
1. min/2. Given two parameters, the first one being a list of numbers, return the minimum value in the list in the second parameter.
min([3, 3, 8, 9, 2, 9, 2], X).
X = 2
min([7], X).
X = 7
None of the lists is a list of lists. The functions must all be independent. The only PROLOG predicate that you are allowed to use is member.
Grading:
Each predicate will carry 8 points for correctness; rest of the points will be for code quality (4 points) and for proper formatting (4 points).
Submission: Submit the program source code via D2L.