SWI-Prolog, задачи со списками.
1. Не могли бы вы помочь в решении такой задачи: требуется определить предикат num_even (L,N), с помощью которого можно найти количество N четных числе в списке L.
Примерное решение, которое в SWI не рабботает.
class predicates
num_even:(E*,unsigned [out]).
clauses
num_even([X|L],N) :- X mod 2 = 0, !,num_even (L,M), N = M+1.
num_even([_|L],N) :- !,num_even([X|L],N).
num_even(_,0).
2. помощь в определении предиката subset(S1,S2), который будет работать, когда множество S1 является подмножеством S2. Использую Visual Prolog.
memb(_,[]) :- fail.
memb(H,[H|_]) :- !.
memb(H,[_|T]) :- memb(H,T).
subset([],_).
subset([H|T],Z) :- memb(H,Z), subset(T,Z).
Тоже выдаёт ошибку.
Помогите, плз.