How do I write a procedure in Prolog that clears a list of integers of its negative elements and returns the result in a new list? Without using cuts but can use negation.>
In SWI-Prolog you can use exclude/3
exclude/3
?- exclude(negative, [-1, -0.5, 0, 0.5, 1], L). L = [0, 0.5, 1].
provided that you have a definition for negative/1:
negative/1
negative(Number) :- Number < 0.