Prolog/什么是 Prolog
Prolog 是一种声明式编程语言。这意味着在 Prolog 中,你不需要像在 C 和 Java 等过程式语言中那样逐行编写计算机应该执行的操作。声明式语言背后的基本思想是描述一种情况。根据此代码,解释器或编译器将告诉你解决方案。在 Prolog 的情况下,它会告诉你 Prolog 语句是否为真,以及如果它包含变量,这些变量需要取什么值。
这听起来像是程序员的福音,但事实是 Prolog 很少以这种纯净的方式使用。虽然声明式思想是 Prolog 的基础,但可以将 Prolog 代码视为过程式。Prolog 程序员通常会根据他们正在阅读或编写的代码部分来进行两者兼顾。然而,在学习 Prolog 时,过程式编程经验没有任何用处。(人们常说,对于没有过程式编程经验的人来说,学习 Prolog 比对于有经验的人来说更容易)Template:Whom
Prolog 被认为是一种难以掌握的语言Template:Whom {{citation}}
: 空的引用 (帮助),尤其是在学生试图急于求成的时候,主要是因为学生需要采用不同的思维方式以及 Prolog 程序中的大量递归。然而,如果使用得当,Prolog 可以成为一种非常强大的语言。
学习 Prolog 当然不会像学习 C++、Java 或 Python 一样总是有成效。Prolog 在与人工智能研究相关的领域最为有用,例如问题解决、(路径)规划或自然语言理解。一些非严格意义上属于人工智能的领域,例如解析器构建,也可以从 Prolog 中获益匪浅。
然而,那些不每天使用自然语言系统的人也可以从 Prolog 中获益匪浅。由于 Prolog 使用了一些被认为是困难或高级的编程技术(最显著的是递归),Prolog 可以成为深入了解这些技术的绝佳方式。熟练的 Prolog 程序员一定会对递归、搜索问题树和约束逻辑编程等概念有深入的了解。Prolog 甚至可以作为一个“草图”工具,在用过程式语言实现之前尝试基本的编程思路。
由于 Prolog 与谓词逻辑密切相关,学习 Prolog 可以帮助你更流畅地理解谓词逻辑。(反之亦然:任何有谓词逻辑经验的人肯定会更快地掌握 Prolog)
总而言之,如果你想提升自己作为网页设计师的简历,Prolog 可能不是最佳选择。Prolog 仍然主要是一种学术语言 {{citation}}
: 空的引用 (帮助)。这并不意味着它纯粹用于测试想法或概述技术。在 Prolog 中已经编写了非常复杂的程序。最重要的是,Prolog 是一种复杂、强大且优雅的语言,可以激发用户的极大满足感;当然,它有时也会让人感到无比沮丧。
如前所述,学习 Prolog 并不容易。Prolog 的工作原理与过程式语言不同,因此需要一种特定的思维方式。学习 Prolog 时,重要的是要慢慢来,让概念沉淀后再继续学习。建议在学习过程中使用不止一种文本或教材,以获得对某个主题的多角度理解。最后,如果你掌握了这里没有解释清楚的棘手内容,请随时编辑维基教科书上的文本,以便未来的学生更容易学习。
下一章:逻辑入门