给定替换 S 和列表 X,如何将 S 应用于 X
假设我有一个替换 S 和列表 Xs,其中 Xs 中出现的每个变量也出现在 S 中。我如何找到列表S(Xs),即通过将替换S应用于列表Xs而获得的列表。 更具体地说…
在 SWI-prolog 中调试 - 未绑定变量
考虑以下 Prolog 代码。它在其输入中编辑特定类型的行,并打印出剩余的行,而不进行任何更改。它使用一个名为 rule 的 DCG,该 DCG 未包含在下面,因…
使用 Prolog DCG 分割字符串
我正在尝试使用 DCG 将字符串拆分为用空格分隔的两部分。例如“abc def”应该给我返回“abc”和“abc def”。 “定义”。该计划& DCG如下。 main:- pr…
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]) --> letter(…
在 Prolog 中连接字符串列表
我正在编写一个 Lisp 到 C 的翻译器,但在处理字符串时遇到问题。这是将一元 Lisp 函数转换为 C 等价函数的代码: define(F) --> fun_unary(F), !. fu…
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 -->广告。 广告 --> a、ad、d。 广…