微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用DCG解析变量

如何解决使用DCG解析变量

| 我在使用Prolog的DCG表示法将以大写字母开头的序列解析为变量时遇到麻烦。例如,如果我有字符串
f a X y Z X
以及解析该字符串的DCG,有什么方法可以将每个大写字母解析为唯一的Prolog变量。例如,将“ 1”解析为一个变量,每个“ 2”解析为一个变量?预期的应用将是构建函子
T = f(a,X,y,Z,X)
通过以该语句结尾的DCG规则
{T =.. [Head|Args]}
    

解决方法

        也许您正在寻找
term_to_atom/3
?- term_to_atom(Term,\'f(a,X,y,Z,X)\').
Term = f(a,_G304,_G306,_G304).
    ,        如果您使用大写字母作为原子,则必须将它们括在单引号之间。例如。 \'X \'和\'Z \'。 否则,它们将被视为序言变量。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。