Ответ в теме: Составить из положительных элементов списка все списки заданной длины

Главная Форумы Программирование Помощь с решением задач на Prolog Задачи на списки Составить из положительных элементов списка все списки заданной длины Ответ в теме: Составить из положительных элементов списка все списки заданной длины

#1895

questioner
Участник

Вот как вижу реализацию я, по отдельности предикаты работают, но в итоге добиться того что мне нужно не могу, кажется проблема в bagof а именно с названием переменных, посмотрите пожалуйста.

filter([],[]).
filter([A|L], [A|N]):- A > 0, filter(L, N).
filter([A|L], N):- A < 0, filter(L,N).
 
member_list([], _).
member_list([Head|Tail], List):-
  member(Head, List),
  delete(List, Head, List2),
  member_list(Tail, List2).
 
select_lists(L1, N, R):-
  filter(List, N),
  bagof(List, (
   length(List, N),
   member_list(List, L1)), R
  ).