dcg-semicontext相关内容

翻译为 DCG Semicontext 不起作用

由于这个问题使用列表,我想用DCG解决它.在这个过程中,我意识到可以使用半上下文.(DCG 入门) 最初的问题是返回列表中项目的计数,但如果两个相同的项目彼此相邻,则不要增加计数. 虽然我的代码适用于某些测试用例,但它不适用于其他测试用例.这只是一个失败的条款.在使用调试器查看代码时,似乎第二个状态变量,即返回的列表,在我认为它应该未绑定时,在调用该子句时被绑定.编辑在下面解决了这部分 ..
发布时间:2022-01-12 10:49:48 其他开发

扩展至 CFG,它是什么?

考虑以下对上下文无关文法的扩展,它允许规则在左侧具有一个(或多个)终结符,位于非终结符的右侧.即形式的规则: A b ->... 右边可以是任何东西,比如上下文无关语法.特别是,不是要求,右侧的末尾将具有完全相同的终端符号.在这种情况下,此扩展将是上下文相关的.但终端不仅仅是一个上下文.有时,这个终端被称为“推回". 显然,这不再是 CFG(类型 2).它包括类型 1.但它是什么?真的已 ..

转换为 DCG Semicontext 不起作用 - 继续

作为对这个问题的跟进,它提出了问题 返回列表中项目的计数,但如果两个相同的项目彼此相邻,则不要增加计数. 这段代码是我最接近用 DCG 和半上下文解决这个问题的代码. lookahead(C),[C] -->[C].% 空列表% 不需要前瞻,因为列表中的最后一项.count_dcg(N,N) -->[].% 列表中的单个项目% 不需要前瞻,因为列表中只有一个.count_dcg(N0 ..
发布时间:2021-06-22 19:03:06 其他开发

转换为 DCG Semicontext 不起作用

由于此问题使用列表,我想使用 DCG 解决它.在这个过程中,我意识到可以使用半上下文.(DCG 入门) 最初的问题是返回列表中项目的计数,但如果两个相同的项目彼此相邻,则不要增加计数. 虽然我的代码对某些测试用例有效,但对其他测试用例却失败了.只有一个条款失败了.在使用调试器查看代码时,似乎第二个状态变量,即返回的列表,在我认为它应该是未绑定的时绑定到对子句的调用.编辑解决了下面这部分 ..
发布时间:2021-06-22 18:49:11 其他开发

CFG的扩展,这是什么?

请考虑以下对上下文无关语法的扩展,该扩展允许规则在左侧出现,而在非结束符的右侧具有一个(或多个)结束符。也就是说,规则的形式为: A b-> ... 右侧可能是任何东西,例如无上下文语法。特别是,不需要是必须的,右侧的末尾将具有完全相同的端子符号。在这种情况下,此扩展将是上下文相关的。但是终端不仅仅是上下文。有时,此终端称为“回送”。 很显然,它不再是CFG(类 ..

算法的DCG状态实现

长序列和短序列之间的距离是短序列与长序列的任何子序列之间的最小距离,该长度与短序列的长度相同。 我使用的距离是曼哈顿距离。 (但是,这应该不重要,因为我希望能够更改距离功能)。 第一个版本显示了一个天真的实现,没有早日放弃。我生成了所有相同长度的子序列,将它们映射成短序列之间的距离,然后使用aggregate / 3来找到最小序列。 abs(X,Y,Z):- Z是abs(XY ..