2017-03-09 31 views
3

我在大学里学习了Prolog课程。课程要求我们编写prolog程序。我能够编写简单的程序,但是我发现消化复杂的程序很难。任何建议如何进行或我如何研究这个问题?解决这种课程的方法是什么?任何帮助赞赏。 谢谢。我如何接近Prolog

+3

你能给一个你觉得很难消化的程序的例子吗?也许我们可以澄清这个例子并展示如何分析它。 –

+0

就像学习任何复杂的系统一样。从小部件开始,完全学习,并建立起来。也试图教给别人帮助。试着看看你是否可以回答Prolog的每一个问题,并且如果你不能随时学习。在几个星期之内,你应该能够开始回答,如果你回答错误,你应该得到关于你出错的地方的反馈。 –

+0

@WillemVanOnsem。地图着色,使用不超过4种颜色着色图形。 – lisa

回答

5

我写了一个答案(这可能只是咆哮),因为我与同样的问题斗争。如果问题得到解决,我认为答案仍然存在?

什么是解决这种课程的方法。

与所有课程一样,您收集所有教师/教师/教授给出的材料并找到他们推荐的书籍。你按照他们的期望进行练习。不要对自己的解决方案很聪明,要聪明地找到你的教练想看的东西!尝试寻找旧的考试并研究它们; ESP。如果你能找到分级考试(如果你是幸运和“机智的”......请问老年学生的帮助!)

任何建议如何进行或如何研究这个问题?

很难学习Prolog。我试图在大学学习,老师说一件事。然后我拿起一本书(“Sterling and Shapiro”),它说另一件事。然后,我上网了,又发现了另外两个不同的东西(“Amzi Amazing Adventure”和“现在学习Prolog!”)。 “Prolog专家系统”(来自Amzi网站)也是另一回事。我来到StackOverflow,并且在所有我尝试阅读的文章中发现了NOWHERE的其他答案。

最适合我学习的地方是SWI-Prolog谓词文档:这太离谱了,你不觉得吗?至少它是一致的... ...

然后很多关于Stackoverflow的答案我试图从中学到的东西都在谈论对我来说毫无意义的东西,可能是因为我不知道Prolog,但如何学习呢?几乎所有的问题都是家庭作业,几乎所有的作业答案都像讲授ISO,逻辑和纯粹的小讲座,但没有明确的答案。

结论:“斯特林和夏皮罗”至少是完整的,并不太奇怪;而SWI-Prolog具有良好的谓词文档和代码示例。

编辑:无处不在无处不在在所有文本中,您是否阅读过关于模块的内容,但是如何编写没有模块系统的大型程序?即使Stroustrup的C++书籍也解释了如何使用头文件和源文件来维护更大的程序。再次,您可以阅读SWI-Prolog文档中有关模块的章节。编辑2:我学习“计算机科学”,所以我可能知道“编程”和“数据结构”和“算法”,我明白什么是“证明树”和“回溯”等等。 Prolog只是另一种语言。那么为什么教它并学习它很困难呢?这是一个悬而未决的问题。我不想在Stackoverflow上询问它,因为它将被关闭。

EDIT3:因为你已经标记为“clpfd”,还有另一种文字:

https://www.metalevel.at/prolog

它显示了中电(FD),我没有任何其他的文本看到许多解决方案,我引用。它是有用的和一致的,但它又与所有其他文本不同。也许如果我阅读和研究所有我能找到的东西,我可以给你一个真正的答案。

但是你想通过课程还是学习Prolog?你想要一个好成绩和最小的努力?你需要先找到这些问题的答案!