Есть ли способ, с помощью которого portray_clause записывается в переменную вместо стандартного вывода?portray_clause to variable в Prolog
?- portray_clause(f(x):app(X, Y, Z)).
f(x):app(_, _, _).
true.
?- portray_clause(Output, f(x):-app(X, Y, Z)).
ERROR: Arguments are not sufficiently instantiated
Спасибо заранее
Что нужно для достижения? Печать в другой поток (отличный от std out) или сохранение структуры, представляющей предложение? – rano
Мне нужно сохранить структуру, которая представляет «симпатичный вывод» из файла portray_clause. Поэтому, если он печатает «f (x): app (_, _, _)». Мне нужно Ouput = f (x): app (_, _, _). –
Пролог гомиконический, если вы можете передать свое предложение в предикат portray_clause, вы можете сохранить его где-то еще – rano