当前位置:  开发笔记 > 人工智能 > 正文

是否可以在Prolog中将空列表写为差异列表?

如何解决《是否可以在Prolog中将空列表写为差异列表?》经验,为你挑选了1个好方法。

对于像我这样的Prolog初学者来说空列表是......很奇怪.我会说,不可能将空列表写[]为差异列表T1-T2,因为不可能将原子写为差异列表.但是,我猜想要使用递归,必须有一种方法可以[]在差异列表设置中使用.我已经谷歌了,但我找不到答案,Bratko(人工智能的Prolog编程)只是简单地触及了这个主题.

那么,是否可以在Prolog中将空列表作为差异列表编写,如果是这样,它将如何以及何时有用?



1> mat..:

理解该主题的问题通常是由于使用误导性术语.

正如tutorial.pdf中的建议,特别是pap95.pdf,使用例如列表差异或简单差异.

教学初学者Prolog的第5部分包含相关的原因.

空列表由atom 唯一表示[].

请注意,列表差异总是意味着有关两个列表的推理,并且由于单个列表和多个列表之间的这种明显差异,您最多可以找到一些对应关系或类比,但不能在空列表和列表差异之间找到标识.

我完全支持上述论文中表达的观点,即你应该专注于使用DCG,至少在开始时.明确地对差异进行推理将在以后自然而然地发生.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有