Findall с несколькими переменными в Прологе
Я хотел бы получить список решений из правила, которое я сделал в Прологе.
Однако предикат findall работает только с одной переменной.
Кто-нибудь может подсказать, как обойти это очевидное ограничение?
Мое правило
beat(P,M,E)
Что я хочу
L = [[P,M],[P,M],................]
Что я получаю сейчас
L = [P,P,P,P,.........]
или же
L = [M,M,M,M,M.............]
1 ответ
Решение
findall
может работать с удивительно гибким количеством вариаций. Я думаю, что вы хотите что-то вроде этого:
findall([P,M], beat(P,M,E), L).