1. Prolog 语法
语法这个词从口中说出来有点生涩陌生,甚至不时让我回忆起高中在操场背3500个英语单词的日子。
要是你也这么想,大可放轻松,下面没有那些有的没的,我们直击主题,就看看这个prolog程序应该怎么写。
注意,这里均是基于swipl风格的代码。swipl是prolog方言的一支,比较友好除了基本的prolog谓词演绎,还省去了很多啰嗦的定义规范,同时还有不少好用的库
refer: wikipedia
2. 基本语法
相爱(张学友,王菲).
相爱(张学友,周慧敏).
相爱(王菲,谢霆锋).
相爱(周慧敏,张学友).
相爱(谢霆锋,王菲).
相爱(谢霆锋,周慧敏).
相爱(刘德华,周慧敏).
爱人(X,Y):-
相爱(X,Y),相爱(Y,X).
抛开定义和更高阶的用法,prolog程序就只有两个部分:
- 事实 Facts
- 规则 Rules
在之后的学习中,你肯定会慢慢觉察到一个关于prolog的事实
事实即规则,规则亦事实
这里分开解释是为了符合正常逻辑,更好理解
(当然在 prolog 中事实可以看做是一种特殊规则的语法糖
)