我在大学读过Prolog课程。课程要求我们编写prolog程序。我能够编写简单的程序,但是我发现很难消化复杂的程序。任何建议如何进行或如何研究这个主题?解决这种问题的方法是什么?任何帮助赞赏。 感谢。
答案 0 :(得分:5)
我写了一个答案(可能只是咆哮),因为我在解决同样的问题。如果问题被解决,我认为答案仍然存在?
解决这种问题的方法是什么。
与所有课程一样,您收集教师/教师/教授提供的所有材料,并找到他们推荐的书籍。你按照他们期望的方式进行练习。不要聪明地使用你的解决方案,聪明地找到你的导师想要看到的东西!尝试找老考试并研究它们; ESP。如果你能找到分级考试(如果你很幸运,并且资源丰富" ......请老年学生寻求帮助!)
有关如何进行的建议或如何研究此主题?
很难学习Prolog。我试着在大学学习,老师说了一件事。然后我拿起一本书(" Sterling和Shapiro")然后又说了一件事。然后我上网了,我发现另外两个非常不同的东西(" Amzi Amazing Adventure"和#34;现在学习Prolog!")。 Prolog"还有专家系统。 (来自Amzi网站),这还是另一回事。我来到StackOverflow,我在我试图阅读的所有文本中找到了其他答案。
最适合我学习的地方是SWI-Prolog谓词文档:这是令人发指的,你不觉得吗?至少它是一致的......
然后我在试图学习的Stackoverflow上的许多答案都在谈论对我来说毫无意义的事情,可能是因为我不了解Prolog,但是如何学习它?几乎所有问题都是家庭作业,几乎所有家庭作业的答案都像是讲述ISO,逻辑和纯粹的小讲座,但没有明确的答案。
总结:" Sterling和Shapiro"至少是完整的,并不是太奇怪;和SWI-Prolog有很好的谓词文档甚至代码示例。
编辑:在所有文本中没有无处你读过有关模块的内容,但是如何在没有模块系统的情况下编写大型程序?甚至Stroustrup的C ++书也解释了如何使用头文件和源文件来维护更大的程序。再次,您可以阅读SWI-Prolog文档中有关模块的章节。
EDIT2:我学习"计算机科学"所以我可能知道"编程"和"数据结构"和"算法"我明白什么是"证明树"和"回溯"等等。 Prolog只是另一种语言。那么为什么要教它并学习它如此困难呢?这是一个悬而未决的问题。我不想在Stackoverflow上询问它,因为它将被关闭。
EDIT3:因为你已经标记了" clpfd",还有另一个文字:
https://www.metalevel.at/prolog
它显示了许多clp(fd)的解决方案,我在其他任何我引用的文本中都没有看到。它是有用和一致的,但它又与所有其他文本不同。也许如果我阅读和研究我能找到的一切,我可以给你一个真正的答案。
但是你想通过课程还是学习Prolog?你想要一个好成绩和最小努力吗?你需要先找到这些问题的答案!