J'ai essayé de résoudre ce problème depuis un moment, mais je ne suis pas vraiment sûr de la façon de procéder.Suppression des listes dans les listes de mon code prologue
Par exemple, disons que j'ai cet « arbre » dans ma base de données:
tree4(b(b(l(Apple),l(Banana)), b(l(Orange), l(Pear)))).
Je veux être en mesure d'interroger la base de données afin de récupérer les informations dans chaque l() et de le présenter en une liste. Jusqu'à présent, je l'ai fait:
leaves(l(X), L) :-
L = X.
leaves(b(X,Y), L) :-
leaves(X, A),
leaves(Y, B),
L = [A, B].
Je requête alors la base de données et il me donne ceci:
?- tree4(T), leaves(T, L).
T = b(b(l(1), l(2)), b(l(3), l(4))),
L = [[1, 2], [3, 4]].
Le problème avec ce code est qu'il génère plusieurs listes nichés dans mon original. Y a-t-il un autre moyen d'y parvenir? Toute aide serait grandement appréciée!
Merci Paulo (+1). J'allais en fait rendre une autre solution sans "append". Tu m'as battu. :) J'apprends toujours à ne pas penser d'abord en termes de prédicats intégrés. – lurker
Merci pour l'aide de vous deux, pense que je comprends le brouillard de celui-ci! –