7得票2回答
Prolog DCGs多重功能?

据我所知,在Prolog中,你可以在解析时这样捕获特征: foo(feature(X)) --> [X], bar. 这在设计DCG时是常见的吗? foo(featureA(X), featureB(Y)) --> [X], [Y], bar.

7得票2回答
Prolog DCG:编写编程语言词法分析器

目前我试图将词法分析器和语法分析器分开,基于书籍《Prolog and Natural Language Analysis》的建议,该书对词法分析/标记化并没有详细说明。所以我正在尝试,并且发现几个小问题,这表明我可能遗漏了一些显而易见的东西。 所有我的小型标记解析器似乎都工作得很好;目前这...

7得票3回答
基于Prolog的解释器

我已经入门了函数式编程;我熟悉(虽然不精通)Haskell和PLT Scheme。我用PLT Scheme构建了一些玩具语言的小解释器(参考PLAI),但我更善于使用命令式语言。 有谁能为我指引一些资源,帮助我使用Prolog构建一个我选择的玩具语言的小型解释器?

25得票3回答
SWI-Prolog在语义Web中的应用

我希望能听到有实际编程经验的人使用SWI-Prolog语义库的经验。 编辑:我提出这个问题的原因是,在与许多拥有Prolog经验的人交谈中,他们中的大多数似乎在他们的学术项目中将其用于一些人工智能编程。我想知道是否有人在生产环境中广泛使用它。因为实时可维护性和性能不同于完成项目以获得好成绩。 ...

11得票3回答
在Prolog中解析具有多个数字的数字

我有一个简单的表达式解析器: expr(+(T,E))-->term(T),"+",expr(E). expr(T)-->term(T). term(*(F,T))-->factor(F),"*",term(T). term(F)-->factor(F). fac...

7得票1回答
在Prolog中使用DCG从EBNF实现DSL的困难

我正在实现Google Protobuf编译器,用于生成Prolog程序的proto文件。 Prolog是SWI-Prolog。 我正在将EBNF定义翻译成DCG,并遇到了一些问题: 1. 我必须处理[...]和{...} EBNF结构 - 意味着可选(可执行零次或一次)和重复(可执行任意...

10得票2回答
Prolog 中的运算符 `-->` 是什么意思?

在Prolog中,-->操作符用于定义规则的头部。它指定了一个结论,当条件匹配时将被推导出来。与之相反的是,:-操作符用于定义规则的主体,它表示当它前面的条件成立时,它后面的语句才能执行。 我正在使用SWI Prolog。

57得票2回答
Prolog中单引号和双引号有什么区别?

我刚接触Prolog,注意到单引号和双引号的行为不同,但是很好奇为什么会这样。具体来说,在加载文件时,?- ['test1.pl'].可以正常工作,而?- ["test1.pl"].则不能。

8得票4回答
Prolog中的输入

我正在开发一个递归的Prolog程序,将路线链接在一起,创建伯明翰地区的基本GPS。目前,我的输出如下所示: 输入 routeplan(selly_oak, aston, P). 输出 P = [selly_oak, edgbaston, ... , aston] 我希望我的程序...

7得票4回答
文本处理DCG应该编写处理代码还是字符?还是两者都要处理?

在Prolog中,通常有两种表示字符序列的方式: 作为 chars 列表,它们是长度为1的原子。 作为 codes 列表,它们只是整数。这些整数将被解释为代码点,但要应用的约定未指定。例如,在SWI-Prolog中,代码点的空间是 Unicode (因此,粗略地说,代码点整数范围从0到0x...