dcg 相关问题

DCG(Definite Clause Grammars)是一种在Prolog中描述列表的简洁方法。

如何在 Prolog DCG 中不使用剪切来表达“不”

我正在开发 Prolog DCG 解析器,将字符串标记为特定模式。我的目标是解析像 mul(Number,Number)、do() 和 dont() 这样的标记,同时忽略所有其他模式。 这是我的

回答 1 投票 0

扩展 DCG 测试用例

我正在寻找扩展 DCG 测试用例。方法 检查 DCG 是否正常运行的测试用例 处理器就结果的行为而言 转换后的规则,而不是其

回答 1 投票 0

涉及大括号的语法

我正在尝试解决序言中的DCG语法并在一定程度上取得了成功,但我一直在评估涉及此类大括号的表达式。 expr( T, ['(', 5, +, 4, ')', *, 7], []), expr(Z) --> ...

回答 5 投票 0

Prolog - 回文函子

我试图在Prolog中编写一个谓词回文/1,当且仅当其列表输入由回文列表组成时,该谓词才为真。 例如: ?- 回文([1,2,3,4,5,4,3,2,1])。 是真的。 任何...

回答 5 投票 0

删除 DCG 中的左递归 - Prolog

我在这个语法中遇到了一个关于左递归的小问题。我正在尝试用 Prolog 编写它,但我不知道如何删除左递归。 -> <

回答 4 投票 0

无限循环中的 Prolog DCG,无需直接左递归

TLDR 我有一个常见的模式,总是陷入无限循环。 模式是 s([H|Rest]) --> non_letters、word(H)、non_letters、s(Rest)。 s([]) --> []。 我不能 100% 确定

回答 1 投票 0

Prolog 循环中的数学表达式 DCG

我正在尝试在 Prolog 中实现数学表达式的 DCG,因为我想做用该语言实现计算器的基本练习,这是我的代码: 莱克斯(添加,'+')。 lex(子, '-'...

回答 1 投票 0

编写包含反转的相同字符串的 DCG

我正在尝试编写一个接受 u0v 形式的字符串的 dcg,其中 u 和 v 是字母表 {1, 2, 3} 上的字符串,u 是 revere 中的 v。我所拥有的似乎有效,因为问题的第一个答案......

回答 1 投票 0

使用 DCG 的斐波那契

我正在尝试在 prolog 中使用 DCG 创建斐波那契数列。我有这个作为初学者,但是我不知道为什么代码没有被执行。 下面是代码: 撒谎...

回答 2 投票 0

Prolog 中的 ' 和 " 有什么区别?

我是 Prolog 新手,注意到 ' 和 " 给出了不同的行为,但很好奇为什么。具体来说,在加载文件时, ?- ['test1.pl']. 有效,而 ?- ["test1 .pl"]。没有。

回答 2 投票 0

使用 dcgs 终止 prolog 查询

鉴于程序 foo([]) --> []. foo([开始|休息]) --> 字母数字(开始), foo(休息)。 alphanum(Ch) --> [Ch], { char_type(Ch, alnum) }. 我怎样才能使查询 length(I, 2), phrase(foo(C)...

回答 1 投票 0

如何在 Prolog 中替换 DCG 文法中的一系列标记?

我想在 Prolog 中替换 DCG 语法中的一系列标记。换句话说,用子列表 B:[b] 替换序列或子列表 A:[a,a,a,a]。 链 -->

回答 4 投票 0

SWI-Prolog中模式识别的滑动窗口方法

我想找到最雄辩和最有效的方法,从算法上讲,来计算 SWI-Prolog 中某些模式的出现次数。 现在,我的解决方案使用 DCG,如下所示:

回答 4 投票 0

在Prolog中实现算术解析器。

我的Prolog代码如下:expression-->first,operator,second.first-->[X].operator-->['+'];['-'].second-->[X]. 编译后,机器在命令中响应 "是"......。

回答 1 投票 0

终端的无限列表 - Prolog语法规则

在Prolog中处理语法规则时,是否可以定义无限数量的终端?下面的例子描述了这个问题:selection-->([if,'('),condition,[')',then,'{'],...。

回答 1 投票 0

在Prolog中并列一个字符串列表

我正在写一个Lisp到C的翻译器,我有一个处理字符串的问题。这是一段将单利斯普函数转换为C语言等价函数的代码: define(F) --> fun_unary(F),!fun_unary(F) ...

回答 4 投票 6

如何在Prolog中创建一个高阶DCG解析器?

我希望有一些更通用的解析器,比如说paren,它可以接受一个解析器,并用括号把它包起来:paren(Parser, Result) --> "(", some_magic_dcg_call(Parser, Result), "...

回答 1 投票 0

Q],[H,P

我如何在prolog中建立一个谓词,接收一个数字和一个列表,我必须通过尾部插入列表中的数字我试过通过头部插入列表中的数字:insert(H,[根据需要扩展它并 "返回"。

回答 4 投票 3

如何在Prolog中评估DCG解析器/生成器?

我在理解Prolog中DCG的语法和用法时遇到麻烦。我正在使用的代码是一种语法解析器,类型为“ a = 1 * 2 +(3-4)/ 5”,这里是对它的选择:factor(factor(...( >

回答 1 投票 1

Prolog DCG解释

我在理解Prolog中DCG的语法和用法时遇到麻烦。我正在使用的代码是一种语法解析器,类型为“ a = 1 * 2 +(3-4)/ 5”,这里是对它的选择:factor(factor(...( >

回答 1 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.