【问题标题】:Becoming operational in Prolog quickly快速在 Prolog 中运行
【发布时间】:2010-12-31 16:00:45
【问题描述】:

我的公司有一个在 Prolog 中运行的项目,我想澄清一些关于如何学习它的事情。我知道 Prolog 是不同的。它不应该像任何其他语言一样学习。

话虽如此,考虑到我还没有接触任何 Prolog 书籍这一事实,是否有任何书籍或在线资源可以让我像学习 C/C++ 一样学习 Prolog?我的意思是,要在 C/C++ 中运行,你只需要知道程序的结构,比如main { }loopsconditionsbranches,以及很少的functions,你可以用于开始用 C/C++ 编写基本程序。

这样我就可以学习 Prolog,有没有什么书可以让我了解如何在 Prolog 中编程? (基础、循环、条件如何实现、程序结构、谓词是什么?如何使用?如何定义?等等……)。

【问题讨论】:

标签: prolog logic predicate


【解决方案1】:

如果你想要一本书,我强烈推荐"The Art of Prolog"

从 C/C++ 之类的东西进入 Prolog 不仅仅是学习编程语言的问题。这是关于编程的完全不同的思考方式

Prolog 是关于向计算机提问(或“查询”,如果您愿意)。计算几乎是计算机试图回答您的问题的副作用。 没有有意义的循环或条件等价物,因为 prolog 程序员不会以这些术语思考。

一个好的 Prolog 程序看起来像是对您尝试解决的问题的描述,分解为递归案例和子问题,而不是组织成函数或类的指令列表。

学习 Prolog 的最佳方式是抛开所有以前的编程经验。实际上考虑 C 和 C++ 会使 Prolog 更难学习和使用。尝试采用初学者的思维方式,也许是一种更像代数而不是程序员的方法。

【讨论】:

  • 感谢您提出有趣的建议。
  • +1 总的来说,我认为这个答案很有帮助,但我不会过分说完全忘记你所有的其他编程经验。可以在 Prolog 中编写以命令式方式运行的代码(例如,借助剪切),有时这样做很方便。此外,您应该始终考虑您正在创建的算法的复杂性。当你问它一个问题时,你仍然需要考虑机器实际上会做什么。事先了解算法和复杂性在这里会很有用。
【解决方案2】:

作为其他答案中提到的 Prolog 教程和教科书的补充,我建议您快速浏览一下这个简短的文档:

Prolog for Imperative Programmers

我认为这是您正在寻找的内容的一部分。它不会教你 Prolog,但它会帮助弥合理解 Prolog 的差距。它使用经验丰富的非 Prolog 程序员可以理解的术语来描述 Prolog 的基础知识。例如,它向您展示了 Prolog 中的控制结构,即序列、选择和重复。不过,它确实假设您已经开始学习 Prolog。

如果你想用你已经知道的东西来理解新的东西,那很好。但是,有了这些知识/理解,您最终可能会以 Prolog 语法编写 C 代码。祝你好运!

【讨论】:

    【解决方案3】:

    Learn Prolog Now 有什么问题,这通常是每次被问到此类问题时的首选?

    它可能无法准确地为您提供所需的术语——我相信它甚至没有提到“谓词”(使用“事实、规则和查询”)或“循环”(它只是展示了如何使用递归而是)——但是一旦概念清晰就正确地使用术语应该是简单、快速和容易的,而且“立即学习 Prolog”似乎确实在使概念清晰方面做得很好。

    【讨论】:

    • 谢谢,我将从这个开始,我期待更多的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    相关资源
    最近更新 更多