17

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

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

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

4

3 回答 3

23

如果你想要一本书,我强烈推荐“序言的艺术”

从 C/C++ 之类的东西来到 Prolog 不仅仅是学习编程语言的问题。这是一种完全不同的编程思维方式。

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

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

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

于 2010-01-01T22:25:21.757 回答
8

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

命令式程序员的 Prolog

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

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

于 2010-01-02T01:21:08.017 回答
7

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

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

于 2010-01-01T20:54:11.363 回答