专栏名称: 创宇前端
目录
相关文章推荐
自然资源部  ·  自信之基、力量之源 | 文化和自然遗产日 ·  昨天  
自然资源部  ·  自信之基、力量之源 | 文化和自然遗产日 ·  昨天  
前端大全  ·  你以为的 Tailwind ... ·  2 天前  
山东环境  ·  2025年全国“安全生产月”公益广告 ·  2 天前  
山东环境  ·  2025年全国“安全生产月”公益广告 ·  2 天前  
前端早读课  ·  【第3528期】RSC 中的导入是如何工作的 ·  2 天前  
神兽集团  ·  美乱纪元开启第一集:问计! ·  3 天前  
神兽集团  ·  美乱纪元开启第一集:问计! ·  3 天前  
51好读  ›  专栏  ›  创宇前端

那迷人的被遗忘的语言:Prolog

创宇前端  · 掘金  · 前端  · 2018-08-13 06:22

正文

请到「今天看啥」查看全文


阅读 22

那迷人的被遗忘的语言:Prolog

在进入正题之前,我们先一起思考一个问题:当我们在编程时,我们在做什么?

看到这个问题,有些同学可能会第一时间要回答:

  • 在听音乐
  • 在打字
  • 在发呆
  • 在装作很忙的样子
  • ……

呃,我不是那个意思,说认真的:当我们在编程时,我们在做什么?

我们在把所想的「解决方案」转换成计算机可理解的「计算机语言」。

JavaScript, Python, Java, Ruby, C++ …… 等等等等,哪怕是世界上最好的语言 PHP,也大抵如此: 「解决方案」->「计算机语言」

但你有没有想过反过来? 「计算机语言」->「解决方案」 这样,我们使用「计算机语言」描述问题,而计算机来告诉我们「解决方案」?

或许你会想到人工智能、深度学习等等概念,但那些热门话题不是我们今天要讨论的。

今天,我们来一起聊聊那迷人的被遗忘的语言:Prolog.

Prolog 简介

Prolog(Programming in Logic)是一种逻辑编程语言。它创建在逻辑学的理论基础之上, 诞生与 1972 年,最初被运用于自然语言等研究领域,距今 46 年历史。当下火热的 JavaScript 语言 23 岁,年龄刚好是 Prolog 的一半。

说到 Prolog 是一种逻辑编程语言,那么跟一般的函数式语言有什么区别呢?答:完全不是一码事情。在 Prolog 里,最基本的做法是先描述事实(定立对象与对象之间的关系),然后用询问目标的方式来查询各种对象之间的关系,系统会自动进行匹配、回溯,并给出答案。

举个例子:

我们使用下面的语法来表述一个事实

handsome(ergou).
复制代码

这个语句描述了一个事实:二狗 (ergou) 是无比帅气 (handsome) 的,然后以句号 (.) 结束,表明这个事实描述完毕,不容置疑。

然后接下来我们在 Prolog 的控制台 (REPL) 里就会得到如下的结论:

?- handsome(X).
X = ergou.

?-
复制代码

其中 ?- 开头的是我们手动输入的,其他的是 Prolog 返回的。上面的那些操作是:

  1. 我们首先问 Prolog:谁是世界上最帅的人? handsome(X). 其中 X 是大写字母开头,在 Prolog 里所有大写字母开头的都是变量。
  2. 然后 Prolog 回答说: X = ergou. ,当然是二狗了!

以上,应该可以算作 Prolog 基本思路的一个演示。你可以去下载适用于你的 Prolog 环境,然后在自己的电脑上把玩一下。







请到「今天看啥」查看全文