快速在Prolog中运行

JPr*_*Pro 12 logic predicate prolog

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

话虽如此,考虑到我还没有把手放在任何Prolog书上,有没有书或在线资源,我可以在哪里学习Prolog我们学习C/C++的方式?我的意思是,只要是在C/C++的操作,你只需要知道程序的结构,比如main { },loops,conditions,branches,很少functions,你可以用它来启动在C/C编写的基本程序++.

就这样我可以学习Prolog吗?是否有任何书只是让我知道如何在Prolog中编程?(基础知识,循环,如何实现条件,程序结构,什么是谓词?如何使用它?如何定义它?等等......).

Daf*_*ees 21

如果您正在读一本书,我强烈推荐"Prolog的艺术":

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

Prolog是关于询问计算机问题(或者如果你喜欢的话,可以询问'查询').计算几乎是计算机试图回答你的问题的副作用.没有有意义的等价于循环或条件,因为prolog程序员不会用这些术语来思考.

一个好的Prolog程序看起来像是你试图解决的问题的描述,分解为递归的情况和子问题,而不是组织成函数或类的指令列表.

学习Prolog的最佳方法是抛弃以前的所有编程经验.实际上考虑C和C++将使Prolog更难学习和使用.尝试采用初学者的想法,也许更像是代数而不是程序员.

  • +1总的来说,我认为这个答案很有帮助,但我不会过分夸大并完全忘记所有其他编程经验.可以在Prolog中编写以强制方式运行的代码(例如,在剪切的帮助下),有时这样做是有利的.此外,您应该始终考虑您正在创建的算法的复杂性.当你提出问题时,你仍然需要考虑机器实际上会做什么.先前对算法和复杂性的理解在这里将是有用的. (2认同)

Ale*_*lli 7

Learn Prolog Now有什么问题,每次提出这样的问题时,这通常是最重要的推荐?

它可能不会给你你想要的术语 - 我相信它甚至没有提到"谓词"(使用"事实,规则和查询"代替)或"循环"(它只是显示如何使用递归) - - 但是,一旦概念清晰明确,术语就应该简单,快速,简单,"现在学习Prolog"似乎确实能够很好地理解概念.


Nel*_*son 5

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

势在必行的程序员的序言

我认为这是你正在寻找的一部分.它不会教你Prolog,但它将有助于缩小与Prolog的理解差距.它使用非Prolog程序员所理解的术语描述了Prolog的基础知识.例如,它显示了Prolog中的控制结构,即序列,选择和重复.但它确实假设你已经开始学习Prolog了.

如果你想要了解一些你已经知道的新东西,那就太好了.但是,凭借这种知识/理解,您可能最终会在Prolog语法中编写C代码.祝好运!