Допустим, я хочу создать граф зависимостей правил для программы Prolog в Prolog.Например, следующая программа
foo(X) :- bar(X, 0).
bar(A, B) :- quux(A), coox(B).
baz.
приведет к тому, что будет выполнено следующее (при использовании assert
):
depends(foo, [bar]).
depends(bar, [quux, coox]).
depends(baz, []).
или что-то подобное выше, которое я мог бы легко использовать длясделать график.Подход, о котором я думал, - это чтение строк входного файла в виде строк и выполнение с ними простого поиска и замены, но это выглядит как уродливый, непрологичный хак.Какие-нибудь другие варианты, которые используют металогические способности Пролога?