Supposons que je souhaite créer un graphique de dépendance de règle pour un programme Prolog, en Prolog. Par exemple, dans ce qui suit étant vrai que le programme suivantGraphique de dépendance de règle dans Prolog
foo(X) :- bar(X, 0).
bar(A, B) :- quux(A), coox(B).
baz.
résulterait (en utilisant assert
):
depends(foo, [bar]).
depends(bar, [quux, coox]).
depends(baz, []).
Ou quelque chose comme ce qui précède que je pourrais facilement utiliser pour faire un graphique. L'approche à laquelle j'ai réfléchi consiste à lire les lignes du fichier d'entrée sous forme de chaînes et à effectuer des opérations simples de recherche et de remplacement sur celles-ci, mais cela ressemble à un hack laid et non-Prologlike. Toutes les autres options qui utilisent les capacités métalogiques de Prolog?
Étant donné que Prolog autorise la surcharge de noms de prédicats en fonction du nombre d'arguments, il vaut mieux utiliser les termes 'Name/NArgs' au lieu des noms simples. –