- 1、本文档共55页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
递归 递归是一种功能强大的编程算法,现在绝大部分的程序语言都支持函数的递归调用,Prolog也不例外,而且如果没有递归,Prolog就不能叫做Prolog了。 在Prolog中,当某个谓词的目标中包含了此谓词本身时,Prolog将进行递归调用。 任何语言中的递归定义都包括两个部分: 边界条件 递归部分 边界条件定义最简单的情况。而递归部分,则首先解决一部分问题,然后再调用其自身来解决剩下的部分,每一次都将进行边界检测,如果剩下的部分已经是边界条件中所定义的情况时,那么递归就圆满成功了 PROLOG还提供了存入磁盘和从磁盘读出的谓词: save(filename) //存入 consult(filename) //读出 1.表头与表尾 表头是表中的第一个元素;表尾是表中除第一个元素外的其余元素按原来顺序组成的表。 表头与表尾示例 例如: [X∣Y,Z] × [X,Y∣Z] √ 竖杠前后可以是常量,如: [a∣Y] [X∣b] 此表称为无尾表 如果这两个表相匹配合一,则有: X=a,Y=b(非Y=[b]) 若无竖杠,则不能分离出表尾,如: [X,Y,Z]与[a,b,c]合一后结果为 X=a,Y=b,Z=c 而非[c] 其他询问: Goal: append([1,2,3],[4,5],[1,2,3,4,5]). yes Goal: append([1,2,3],[4,5],[1,2,3,4,5,6]). no Goal:append([1,2,3],Y,[1,2,3,4,5]) Y=[4,5] Goal:append(X,Y,[1,2,3,4,5]) X=[],Y=[1,2,3,4,5] X=[1],Y=[2,3,4,5] X=[1,2],Y=[3,4,5] 递归技术一般只在表处理中使用,其他程序中尽量不用,而用迭代循环。 4.关系表达式 Turbo PROLOG提供了六种常用的关系运算, 即小于、 小于或等于、等于、大于、大于或等于和不等于, 其运算符依次为 , =, =, , =, 数学中的关系式 Turbo PROLOG中的关系式 X+1≥Y X+1=Y X≠Y XY 它们都采用中缀形式。Prolog中的原子形式表示如下: =(X+1,Y) (X,Y) 这六中关系运算符就是Turbo PROLOG内部定义好的六个谓词。用来比较两个关系式大小。 brother(Name1, Name2):- person(Name1, man, Age1), person(Name2, man, Age2), mother(Z, Name1), mother(Z, Name2), Age1Age2. ◆ “=”的用法 :比较符和约束符 p(X, Y, Z):-Z=X+Y. 当变量X、Y、Z全部被实例化时, “=”就是比较符。 如: 对于问题 Goal: p(3, 5, 8). 机器回答: yes。 而对于 Goal: p(3, 5, 7). 机器回答: no。 但当X, Y被实例化, 而Z未被实例化时, “=”号就是约束符。 如: Goal: p(3, 5, Z). 机器回答: Z=8 这时, 机器使Z实例化为X+Y的结果。 2.2.3 输入与输出 为从键盘输入有关数据,PROLOG一般提供专门的输入和输出谓词; (1) readln (X) //读字符串给X (2) readint (X) //读整数给X,若不是则谓 词失败 (3) readreal (X) //读实数给X,若不是则谓词失败 (4) readchar (X) //读字符给X,否,失败 (5) write (X1, X2, …,Xn) //输出X(实例化,否则失败) W
您可能关注的文档
- 第2章混凝土结构基本计算原则讲解.ppt
- 第2章混凝土斜拉桥的构造讲解.ppt
- 第2章机构的结构1讲解.ppt
- 第2章机械零件的工作能力讲解.ppt
- 第2章机械零件的疲劳强度讲解.ppt
- 第2章基本测量理论与测量数据处理讲解.ppt
- 第2章基本单管放答电路讲解.ppt
- 第2章基本经济要素讲解.ppt
- 第2章基础知识讲解.ppt
- 第2章集散控制系统的体系结构讲解.ppt
- 2024秋新人教版数学一年级上册教学课件 第2单元 6~10的认识和加减法 第10课时 10的加减法 (2).pptx
- 2024秋新鲁教版英语6年级上册课件 Unit 2 Section A(1a-1d)(第1课时).pptx
- 2024秋新科粤版化学9年级上册教学课件 4.1 化学式 第1课时 化学式.pptx
- 2024秋新人教版数学1年级上册课件 第2单元 6~10的认识和加减法 第7课时 8和9的加减法.pptx
- 2024秋新人教版数学1年级上册教学课件 第2单元 6~10的认识和加减法 第7课时 8和9的加减法.pptx
- 2024秋新科粤版化学9年级上册课件 4.1 化学式 第2课时 化合价的计算及应用.pptx
- 2024秋新人教版数学七年级上册课件 2.2.2 有理数的除法 第1课时 有理数的除法 (2).pptx
- 2024秋新人教版数学7年级上册教学课件 6.1.2 点、线、面、体.pptx
- 2024年新苏教版七年级上册生物 第1章 认识细胞 第2节 动物细胞的结构与功能 .pptx
- 2024秋新人教版生物7年级上册课件 第1单元 第3章 第4节 单细胞生物.pptx
文档评论(0)