我在使用Prolog的DCG表示法将以大写字母开头的序列解析为变量时遇到了问题。例如,如果我有一个字符串
f a X y Z X和一个解析这个字符串的DCG,有没有办法把每个大写字母解析成一个唯一的Prolog变量。例如,将Y解析为一个变量,将每个X解析为一个变量?预期的应用程序将是构建函数
T = f(a,X,y,Z,X)通过以语句结尾的DCG规则
{T =.. [Head|Args]}发布于 2011-06-15 05:02:14
也许你是在找term_to_atom/3
?- term_to_atom(Term, 'f(a,X,y,Z,X)').
Term = f(a, _G304, y, _G306, _G304).发布于 2011-06-15 01:01:50
如果使用大写字母作为原子,则必须用单引号将它们括起来。例如。“X”和“Z”。
否则,它们将被视为prolog变量。
https://stackoverflow.com/questions/6347091
复制相似问题