У меня есть определенный список, который генерируется из предиката и выглядит следующим образом:
[a, b, c]
У меня также есть следующий предикат p/3
, который можно применить к каждому элементу моего списка:
?- p(a, NewList, Number).
и будет возвращено:
NewList = [c, d],
Number = 2.
, где NewList - это новый сгенерированный список из элемента a , а Number - длина NewList.
Задача :
Я хочу применить предикат p/3
ко всем элементам и получить
- один список, состоящий извсе элементы из всех новых списков, то есть все новые списки, добавленные вместе
- и сумма всех чисел.
Я пытался сделать это так:
loop_list([Element|[]], NewList, Number) :-
p(Element, NewList, Number).
loop_list([Head|Tail], [Tmp|NewList], Number) :-
loop_list(Tail, Tmp, Number).
, ноне удалось.