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