2016-10-15 1 views
2

Je voudrais obtenir une liste de solutions d'une règle que j'ai faite dans Prolog.Findall avec plusieurs variables dans Prolog

Cependant, le prédicat findall semble fonctionner uniquement avec une variable. Est-ce que quelqu'un peut suggérer comment contourner cette limitation apparente?

Ma règle

beat(P,M,E) 

Ce que je veux

L = [[P,M],[P,M],................] 

Ce que je reçois maintenant

L = [P,P,P,P,.........] 

ou

L = [M,M,M,M,M.............] 

Répondre

4

findall peut travailler avec une quantité étonnamment flexible de variations. Je pense que vous voulez quelque chose comme ceci:

findall([P,M], beat(P,M,E), L). 
+0

Merci travail: D – ReiiYuki

+0

De rien. – eazar001

+0

@ReiiYuki S'il vous plaît, marquer la réponse comme acceptée si c'est la solution dont vous avez besoin, afin que les autres utilisateurs peuvent trouver cette réponse utile aussi. – Yasel