- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
string: 用双引号括起来的字符序列 例:“I am from Nanjing” symbol:有两种形式: 以小写字母开头的字母、数字和下划线组成的序列 用双引号括起来的字符串序列 Prolog中表示成下列形式: integerlist = integer * “integer” 说明表中元素的类型 “* ” 告诉编译系统,这是一张表 表: 例 domains title , author = symbol pages = integer 注:每一个说明的最后无句号 “ . ” 谓词段(predicates) 说明用户自己定义的谓词 说明谓词变元的域 谓词名: 由小写字母开头,由字母、数字和下划线组成(标识符原子) 谓词变元的类型 标准域 域段中说明的其它域 例: domains person = symbol predicates father(person) 或者 father(symbol) alphabet_position(char, integer) 谓词后面无句号 “ . ” 子句段(clauses) 由事实与规则组成 说明: 每一个事实或规则后面必须有句号“ . ” 例: clauses likes(tom, football). classify(X, negative):- X0. classify(X, positive):- X0. 目标段(goal) 必须书写一个目标段,作为源码的一部分(内部目标) 外部目标 例 goal likes(tom, X). 注释: 多行注释:/* …… */ (C/C++中采用的符号) 单行注释:% (Matlab中采用的符号) Visual Prolog 程序的基本结构: domains ……(说明变量类型,无句号) predicates ….. (说明谓词,无句号) clauses ….. (程序段,必须有句号) goal …… (目标或问题,必须有句号) 3 例子 例1:?? ?predicates?/*谓词段,对要用的谓词名和参数进行说明*/ likes(symbol,?symbol) friend(symbol,?symbol) clauses?/*子句段,存放所有的事实和规则*/ likes(bell,sports).?/*前4行是事实*/ likes(mary,music). likes(mary,sports). likes(jane,smith). friend(john,X):-likes(X,sports),likes(X,music).?/*本行是规则*/ 例2: predicates /*谓词段:*/ hanoi(integer) move(integer,symbol,symbol,symbol) inform(symbol,symbol) clauses /*子句段*/ hanoi(N):-move(N,a,b,c). move(1,A,_,C):-inform(A,C),!. move(N,A,B,C):-N1=N-1,move(N1,A,C,B),inform(A,C),move(N1,B,A,C). inform(Loc1,Loc2):-nl,write(移动1个盘子从柱 ,Loc1,到柱,Loc2). goal /*目标段,问移动3个盘子的方法*/ hanoi(3). 注意: 这两部分不能颠倒。必须前提部分写在前面,问题部分写在后面 likes(m, f). likes(m, w). (事实) likes(j, w). likes(j, s). goal likes(m, X), likes(j, X). (问题) 问题:是否 m 和 j 都喜欢什么东西?( X = ? ) f w s m j Prolog的求解过程 现在有两个问题:likes(m, X) 和 likes(j, X)) 第一步:第一个问题 likes(m, X) 去与事实匹配(置换与合一),按顺序得到 {f/X} likes(m, f). likes(m, w). likes(j, w). likes(j, s). 第二步:f 代替第二个问题 likes(j, X) 中的 X,则得 likes(j, f) 。再与事实匹配,不能匹配,失败,则回溯,忘掉刚才的匹配 likes(m, f). likes(m, w). likes(j, w). likes(j, s).
您可能关注的文档
- 2016届连贯衔接专题讲解.ppt
- 2016届山东牟平第一中学高三政治一轮复习:第1单元《公民的政治生活》(新人教版必修2)讲解.ppt
- 2016届山东牟平第一中学高三政治一轮复习:第1单元第2课《民主选举、民主决策》(新人教版必修2)讲解.ppt
- 2016届山东牟平第一中学高三政治一轮复习:第3单元第7课《宗教政策》(新人教版必修2)讲解.ppt
- 2016届生活与哲学高考一轮复习:哲学的基本问题、基本派别讲解.ppt
- 2016届武汉市第六十三中学中考英语一轮复习:第19讲九年级Units7-8(人教新目标版)讲解.ppt
- 2016届现代中国外交复习讲解.ppt
- 2016届新中国成立初期现代中国外交讲解.ppt
- 2016届云南中考历史:专题研究专题4中国近现代的对外交往(新人教版)讲解.ppt
- 2016届云南中考政治教材知识梳理:九年级(全一册)第2单元《共同生活3》(新人教版)讲解.ppt
文档评论(0)