I need to do this homework assignment using prolog (SWI-flavor) and cant get my head around some things.
For example, if i want to iterate through a list and add its elements to another, but ONLY if they meet certain condition, how would I go about it? I can add them all, or none, but if I add clause that checks this condition, the whole recursion turns out as "false". I understand why this is, but have no idea how to fix it. Basically what i want is:
goal(Stuff) :- do_something(X),
only_do_this_if_something(Y),
always_do_this(Z).
Currently, if only_do_this_if_something(Y)
fails, also always_do_this(Z)
doesnt happen as the whole goal turns false...