养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

Prolog的基本概念和语法规则

时间:2024-09-27 21:30:47

Prolog是逻辑编程语言,它的语法是极其简单而又独特的。在Prolog中,数据以逻辑规则的形式存在。在这篇经验中,我将介绍它的基本概念和语法规则。

Prolog的基本概念和语法规则

工具/原料

SWI-Prolog

方法/步骤

1、在Prolog中,最简单的形式就是一些事实。现在,让我们来看下面这个事实:狗(do壹执慵驾g)咬(bites)人(man傧韭茆鳟)在Prolog中,这个事实的表述成以下形式:bites(dog,man).关系名在前,对象名在后,并用括号括上。在Prolog术语中,关系被称为谓词,对象被称为变元,整个事实叫作子句。无论是谓词还是变元,一般要用小写,且子句以英文句号“.”结束。

Prolog的基本概念和语法规则

2、对象名如果非要用大写字母、空格等特殊字符,就必须要加单引号。在SWI-Prolog中,甚至支持汉字作为对象名(当然必须得加引号)。

Prolog的基本概念和语法规则

3、需要注意的是,变元数可以是任意的,这取决于所期望联系在一直的对象数目,例如,要在Prolog中表达“约翰送给波林一块手表”这一事实,会是下方的语句:give(john,pauline,watch).

Prolog的基本概念和语法规则

4、在编写程序时,可以用/**/来表示注释,在其中的内容会在运行时被忽略;也可以用%来作为注释符,在那一行中,其后的内容也会被忽略。将事实录入后,再运行后,会有问号提示符“?-”,我们可以进行询问。在Prolog中,变量名的首字母必须大写。下图是一个关于学生信息的程序文件。

Prolog的基本概念和语法规则

5、比如,要提出男生有谁的问题,可以这样询问:-?male(X).如果想看其他答案,可以键入字符“;”,这样Prolog就可以继续进行搜索。如果想到此为止,就按回车键。

Prolog的基本概念和语法规则

6、如果要询问一些更复杂的问题,比如:“在一年级中,有没有20多岁,且学习化学的男生?”语句如下:?-year(X,1),age(X,Y),Y>20,studies(X,chemistry).表示“与”的逻辑意义时,要用逗号连接子句。

Prolog的基本概念和语法规则

7、如果提出这样的问题:“Hazel在学数舌哆猢筢学或是化学吗?”语句如下:?-studies(hazel,mathematics);studies烫喇霰嘴(hazel,chemistry).表示“或”的逻辑意义时,要用分号连接子句。但不建议在Prolog程序中滥用分号,因为会使程序的逻辑性不清楚,以至于难以跟踪。

Prolog的基本概念和语法规则

8、如果要提问:“不学历史的男生有谁?”语甜入艺阝句如下:?-male(X),\+(studies(X,history)).在SWI-Prolog蒗钰妒蟥中,表示否定用\+,但在其他Prolog方言中,也有用not的。使用时需要用括号将相应条件括起来。但需要注意在这种否定子句中含有变量的情况下,需要将它放在后面。如果将否定条件放到前面,此时,X属于自由变量,也就是说,会先否定掉所有学历史的学生,达不到预期效果。

Prolog的基本概念和语法规则

9、有时,我们对变量的值并不关心,我们可以使用空变量。空变量记作“_”。比如,要提问:“有学哲学的男生吗?”可以这样提问:?-male(_),studies(_,philosophy).

Prolog的基本概念和语法规则

© 一点知识