首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DCG解析变量

使用DCG解析变量
EN

Stack Overflow用户
提问于 2011-06-15 00:49:08
回答 2查看 391关注 0票数 3

我在使用Prolog的DCG表示法将以大写字母开头的序列解析为变量时遇到了问题。例如,如果我有一个字符串

代码语言:javascript
复制
f a X y Z X

和一个解析这个字符串的DCG,有没有办法把每个大写字母解析成一个唯一的Prolog变量。例如,将Y解析为一个变量,将每个X解析为一个变量?预期的应用程序将是构建函数

代码语言:javascript
复制
T = f(a,X,y,Z,X)

通过以语句结尾的DCG规则

代码语言:javascript
复制
{T =.. [Head|Args]}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-15 05:02:14

也许你是在找term_to_atom/3

代码语言:javascript
复制
?- term_to_atom(Term, 'f(a,X,y,Z,X)').
Term = f(a, _G304, y, _G306, _G304).
票数 3
EN

Stack Overflow用户

发布于 2011-06-15 01:01:50

如果使用大写字母作为原子,则必须用单引号将它们括起来。例如。“X”和“Z”。

否则,它们将被视为prolog变量。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6347091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档