竞赛:| 全国大学生数模竞赛 | 全国研究生数模竞赛 | 全国大学生电工数模竞赛 | 美国"MCM/ICM" 竞赛 |
 资讯:| 数学理论 | 交叉学科 | 基础教育 | 考研数学 | 学术动态 | 编程交流 | 网络安全 | 经验技巧 |
 下载:| 数 学 篇 | 算 法 篇 | 建 模 篇 | 编 程 篇 | 数 据 篇 | 软 件 篇 | 考 研 篇 | 交叉学科 |
 视频:| 大学数学 | 大学英语 | 计 算 机 | 法律课程 | 政治课程 | 经济管理 | 数学建模 | 高考数学 |
 功能:| 矩阵论坛 | 学校协会 | 挑 战 赛 | 人才招聘 | 数学问吧 | "MC"理工浏览器 | "MCQ"即时通讯 |

 
会员中心
社区论坛
加入收藏
联系我们
您现在的位置: 数学中国 >> 资讯无限 >> 科技时代 >> IT前沿 >> 正文
【字体:           ★★
 
Prolog教程2-入门
作者:god    文章来源:转载    点击数:    更新时间:2006-4-20
探索Prolog

Prolog在英语中的意思就是Programming in LOGic(逻辑编程)。它是建立在逻辑学的理论基础之上的, 最初是运用于自然语言的研究领域。然而现在它被广泛的应用在人工智能的研究中,它可以用来建造专家系统、自然语言理解、智能知识库等。同时它对一些通常的应用程序的编写也很有帮助。使用它能够比其他的语言更快速地开发程序,因为它的编程方法更象是使用逻辑的语言来描述程序。

从纯理论的角度来讲,Prolog是一种令人陶醉的编程语言,但是在这本书中还是着重介绍他的实际使用方法。


进入Prolog世界

和其他的语言一样,最好的学习方法是实践。这本书将使用Prolog的解释器来向大家介绍几个具体的应用程序的编写过程。 

首先你应该拥有一个Prolog的解释器,你可以在免费prolog版本中找到它。关于解释器的使用,请参阅相关的使用说明文档,建议使用amzi prolog 或者swi prolog来运行本网站的程序。



逻辑编程

什么叫逻辑编程?也许你还没有一个整体的印象,还是让我们首先来研究一个简单的例子吧。运用经典的逻辑理论,我们可以说“所有的人(person)都属于人类(moral)”,如果用Prolog的语言来说就是“对于所有的X,只要X是一个人,它就属于人类。”

moral(X):-person(X). 

同样,我们还可以加入一些简单的事实,比如:苏格拉底(socrates)是一个人。

person(socrates).

有了这两条逻辑声明,Prolog就可以判断苏格拉底是不是属于人类。在Prolog的Listener中键入如下的命令:

?-mortal(socrates). (此句中的'?-'是Listener的提示符,本句表示询问苏格拉底是不是属于人类。)

Linstener将给出答案:

yes

我们还可以询问,“谁属于人类?”

?-mortal(X).

我们会得到如下的答案:

X= socrates

这个简单的例子显示了Prolog的一些强大的功能。它能让程序代码更简洁、更容易编写。在多数情况下Prolog的程序员不需要关心程序的运行流程,这些都由Prolog自动地完成了。

当然,一个完整的程序不能只包括逻辑运算部分,还必须拥有输入输出,乃至用户界面部分。很遗憾,Prolog在这些方面做得不好,或者说很差。不过它还是提供了一些基本的方法的。下面是上述的程序一个完整的例子。

 
 % This is the syntax for comments. % MORTAL - The first illustrative Prolog 
program mortal(X) :- person(X).
person(socrates).
person(plato).
person(aristotle).
mortal_report:-
write('Known mortals are:'),nl, mortal(X), write(X),nl,
fail. 
 

 
把这个程序调入Listener中,运行mortal_report.。

?- mortal_report. 
Known mortals are:
socrates
plato
aristotle
no 

以上程序中的一些函数以后还会详细的介绍的。最后的那个no表示没有其他的人了。


进入下一章

从下一章起,就开始正式介绍Prolog的编程方法了。我将用一个实例来介绍Prolog,这是一个文字的冒险游戏,你所扮演的角色是一个三岁的小女孩,你想睡觉了,可是没有毛毯(nani)你就不能安心的睡觉。所以你必须在那个大房子中找到你的毛毯,这就是你的任务。这个游戏能够显示出一些Prolog的独到之处,不过Prolog的功能远不止编个简单的游戏,所以文中还将介绍一些其他的小程序。
文章录入:god    责任编辑:madio  
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    推 荐 文 章
    更多内容
     
    热 门 文 章  
    更多内容
     

    费马小定理
    相 关 文 章
    更多内容
     
    Prolog教程7-小结
    Prolog教程6-规则
    Prolog教程5-混合查询
    Prolog教程4-简单查询
    Prolog教程3-事实
    Prolog教程1-补充教程(写在正…
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |