使用 Prolog DCG 分割字符串
我正在尝试使用 DCG 将字符串拆分为用空格分隔的两部分。例如“abc def”应该给我返回“abc”和“abc def”。 “定义”。该计划& DCG如下。 main:-…
Prolog 问题 - 简单语法实现
如果我有以下语法: S → ε S → a S b S 如何在 Prolog 中实现它? 我尝试了这个: isMatched([]). isMatched([a,b]). isMatched([a|[S1|[b|S2]]]) …
Prolog 的 DCG 问题
该项目旨在将半自然语言转换为 SQL 表。代码: label(S) --> label_h(C), {atom_codes(A, C), string_to_atom(S, A)}, !. label_h([C|D]) --> let…
在 Prolog 中连接字符串列表
我正在编写一个 Lisp 到 C 的翻译器,但在处理字符串时遇到问题。这是将一元 Lisp 函数转换为 C 等价函数的代码: define(F) --> fun_unary(F), !. …
Prolog:简单 DCG a^nb^n
我一直试图习惯在 Prolog 中使用 DCG,但失败了。 如何定义一组语法规则来接受语言 a^nb^n? 例如 aaaabbbb 或 ab 等... 谢谢:)。…
Prolog:DCGS - 将数字转换为英语
我正在练习在 Prolog 中使用 DCG。我采用像 123 这样的整数,将其“分解”为列表,即 [1,2,3],然后我想使用 DCG 规则来获取输出一二三。到目前为止,…
问题 - 序言中的形式语言
我正在尝试构建一个 DCG,它可以识别与此形式匹配的所有列表:a^nb^2m c^2m d^n。 我写下了以下规则: <代码>s --> []. <代码>s -->广告…
我可以在 Prolog 中将字符列表转换为字符串或术语吗
我 read_line_to_codes(Stream,Line) 首先从文件中读取一行.. 有没有办法读取一行并将其分配给序言中的一个术语?如果不是,我设法读取一行并将其放入…
Prolog 中的 DCG ߞ字符串
我正在使用 Prolog 的内置 DCG 功能编写一个 Lisp 到 C 的翻译器。这就是我处理算术的方式: expr(Z) --> "(", "+", spaces, expr(M), spaces, expr…