分析prolog教程1

分析prolog教程1

ID:22511259

大小:63.00 KB

页数:9页

时间:2018-10-29

分析prolog教程1_第1页
分析prolog教程1_第2页
分析prolog教程1_第3页
分析prolog教程1_第4页
分析prolog教程1_第5页
资源描述:

《分析prolog教程1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、分析Prolog教程1假如你是一位prolog的新手,希看你首先阅读这篇文章,好对prolog的全局有个了解。在这篇文章中我会把prolog和其他的程序语言做比较,所以希看你已经具有了一定的编程水平。什么是prolog?prolog是ProgramminginLOGic的缩写,意思就是使用逻辑的语言编写程序。prolog不是很高深的语言,相反,比较起其他的一些程序语言,例如c、basic等等语言,prolog是更加轻易理解的语言。假如你从来没有接触过计算机编程,那么恭喜你,你将很轻易的进进prolog世界。假如你已经是其他语言的高手,你就需要完全丢弃

2、你原来的编程思路,否则是很难把握prolog的。一个例子逻辑思维在我们日常生活中比比皆是,prolog正是把这种思维用文字描述出来的计算机语言。还是首先举个例子吧。比如一群年轻人正在恋爱,每个人都有自己心中所追求的对象:张学友爱王菲张学友爱周慧敏王菲爱谢廷峰周慧敏爱张学友谢廷峰爱王菲谢廷峰爱周慧敏刘德华爱周慧敏......我们说两个年轻人要互相都喜爱,他们就算是一对情侣,那么上面的谁和谁是情侣呢?这应该算是一道最简单逻辑推理题目了,那么我们如何用prolog语言实现呢?“张学友爱王菲”是一条已知的事实,用prolog语言来表达就是:爱(张学友,王菲)

3、.注重1:这里是为了阅读方便才使用汉字的,真正的prolog是不答应使用除了基本字符以外字符的,也就是说,上面的句子必须写成love(zhangxueyou,in).love(in,zhangxueyou).love(xietinfen,in).love(liudehua,zouhuimin).lovers(X,Y):-love(X,Y),love(Y,X).我们可以看出来,完整的prolog程序是有事实和规则组成的。事实用来储存一些数据,而规则用来储存某种可以推理出来的关系。假如把上面的程序调进prolog解释器(有关prolog解释器,在后面有先

4、容)然后就可以对以上的程序进行询问。prolog解释器的提示符号为“?-”,你只需要在在这个提示符后面输进自己的句子就可以了。让我们来看第一个询问:?-love(zhangxueyou,in;no.注重1:上面的两个“;”是人工输进的,当解释器找到一个答案之后,它将这个答案输出,并且等待用户的进一步输进,假如用户输进“;”,解释器将继续寻找其他的答案,假如输进的是别的符号,解释器将终止查询。最后那个no.是由于,系统在输出了zouhuimin这个答案以后,用户输进“;”,表示还想知道其他的答案,而解释器又找不到其他的答案了,于是输出no.来终止查询。

5、我们再看一个例子:?-love(X,zouhuimin).X=zhangxueyou;X=xietinfen;X=liudehua;no.在上面的询问中,我们只涉及到对事实的查询,下面我们来看规则的用法。?-lovers(X,Y).X=zhangxueyouY=zouhuimin;X=inY=zhangxueyou;X=xietinfenY=wanfei;no我们看到lovers(X,Y).找出了系统中所有的恋人。不过每对恋人被显示了两次,这是由于prolog是考虑顺序的,也就是说lovers(a,b).和lovers(b,a).并不等价。这一点在后

6、面的学习中,你会了解。再看一个例子:?-lovers(wanfei,Y).Y=xietinfen;no询问王菲的恋人,结果是xietinfen。呵呵,还挺聪明的。我们看到同样是lovers,根据其参数不同,功能也不同,这也是prolog的一个大特征。最后让我们编写一个寻找情敌的规则来结束这一节内容吧。rival_in_love(X,Y):-love(X,Z),not(love(Z,X)),love(Z,Y).这段程序可以理解为:Y是X的情敌的条件是:X喜欢Z(代表某个人),而Z不喜欢X,而Y是Z喜欢的人。哈哈,这不正是情敌的条件嘛。?-rival_i

7、n_love(X,Y).X=zhangxueyouY=xietinfen;X=xietinfenY=zhangxueyou;X=liudehuaY=zhangxueyou;no好了,你自己分析一下为什么会是这样的答案吧。为什么要prolog看完上面的例子,不知道是否提起了你对prolog的喜好。假如你感喜好的话,那么让我们继续来看prolog能够做一些什么事情吧。理论上来说使用c语言可以编制任何种类的程序,甚至连prolog语言都是使用c语言编写的。不过对于急于开发应用程序的用户,最关心的是如何最经济最有效率的开发程序,prolog为你多提供了一个选

8、择的余地。prolog很适合于开发有关人工智能方面的程序,例如:专家系统、自然语言理解、定理证实以及很多智力

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。