Learn Prolog Now 翻译 - 第一章 - 事实,规则和查询 - 第三节, 练习题和答案

练习题 1.1 下面的字符序列哪些是原子,哪些是变量,哪些两者都不是?

 

 1. vINCENT

 2. Footmassage

 3. variable23

 4. Variable2000

 5. big_kahuna_burger

 6. 'big kahuna burger'

 7. big kahuna burger

 8. 'Jules'

 9. _Jules

 10. '_Jules'

 

 我的答案:

 vINCENT,variable23,big_kahuna_burger,'big kahuna burger','Jules','_Jules'是原子;

 Footmassage,Variable2000是变量;

 big kahuna burger两者都不是

 

练习题 1.2 下面的字符序列中哪些是原子,哪些是变量,哪些是复杂语句,哪些什么都不是?给出每个复杂语句的函子和元数。

 

 1. loves(Vincent, mia)

 2. 'loves(Vincent, mia)'

 3. Butch(boxer)

 4. boxer(Butch)

 5. and(big(burger), kahuna(burger))

 6. and(big(X), kahuna(X))

 7. _and(big(X), kahuna(X))

 8. (Butch kills Vincent)

 9. kills(Butch Vincent)

 10. kills(Butch, Vincent

 

 我的答案:

 'loves(Vincent, mia)'是原子;

 没有变量;

 复杂语句有:

  loves(Vincent, mia),函子是loves,元数是2;

  boxer(Butch),函子是boxer,元数是1;

  and(big(burger), kahuna(burger)),函子是and,元数是2;

  and(big(X), kahuna(X)),函子是and,元数是2;

 什么都不是的包括:Butch(boxer),_and(big(X), kahuna(X)),(Butch kills Vincent),kills(Butch Vincent),kills(Butch, Vincent。

 

练习题 1.3 在下面的知识库中,事实,规则,子句和谓词分别有多少个?哪些是规则的头部,哪些是对应的目标?

 

 woman(vincent).

 woman(mia).

 man(jules).

 person(X) :- man(X); woman(X).

 loves(X, Y) :- father(X, Y).

 father(Y, Z) :- man(Y), son(Z, Y).

 father(Y, Z) :- man(Y), daughter(Z, Y).

 

 我的答案:

 事实一共有3个,它们是:

  woman(vincent).

  woman(mia).

  man(jules).

 规则一共有4个,它们是:

  person(X) :- man(X); woman(X).

  loves(X, Y) :- father(X, Y).

  father(Y, Z) :- man(Y), son(Z, Y).

  father(Y, Z) :- man(Y), daughter(Z, Y).

 子句一共有7个,它们是:

  man(X),woman(X),father(X, Y),man(Y),son(Z, Y),man(Y),daughter(Z, Y)

 谓词一共有7个,他们是:

  woman,man,person,loves,father,son,daughter;

 规则的头部和其包含的目标如下:

头部包含的目标
person(X)man(X); Woman(X)
loves(X, Y)father(X, Y)
father(Y, Z)man(Y), son(Z, Y)
father(Y, Z)man(Y), daughter(Z, Y)

 

 

 

 

 

 

练习题 1.4 在Prolog中表达以下的逻辑

 

 1. Butch is a killer

 2. Mia and Marsellus are married

 3. Zed is dead.

 4. Marsellus kills everyone who gives Mia a footmassage.

 5. Mia loves everyone who is a good dancer.

 6. Jules eats anything that is nutritious or tasty.

 

 我的答案:

 1. killer(butch).

 2. married(mia, marsellus).

 3. dead(zed).

 4. kills(marsellus, X) :- footmassage(X, mia).

 5. loves(mia, X) :- good_dancer(X).

 6. eats(jules, X) :- nutritious(X); tasty(X).

 

 两点个人总结:

 1. 如果要将现实中的逻辑或者信息使用Prolog的形式表达,那么函子可能会是动词、名字和形容词,而参数应该是名词或者复杂语句。

 2. 函子、参数序列及其实现组成的谓词逻辑,这个和传统意义上的函数或者方法是有本质区别的:函数和方式有执行过程,有输入和输出;谓词只是知识库中事实和规则的存储方式,

通过查询起作用,其本身是没有副作用的。

 

练习题 1.5 假设我们有如下的知识库:

 

 wizard(ron).

 hasWand(harry).

 quidditchPlayer(harry).

 wizard(X) :- hasBroom(X), hasWand(X).

 hasBroom(X) :- quidditchPlayer(X).

 

 Prolog会针对下面的查询做出怎么样的回答?

 1. wizard(ron).

 2. witch(ron).

 3. wizard(hermione).

 4. witch(hermione).

 5. wizard(harry).

 6. wizard(Y).

 7. witch(Y).

 

 我的答案:

 1. Prolog会回答true,因为这是知识库中直接定义的事实。

 2. Prolog会报错,因为知识库中没有定义关于witch的任何事实和规则。

 3. Prolog会回答false,因为没有直接定义该事实,也不能通过间接推导得出。

 4. Prolog会报错,原因同2。

 5. Prolog会回答true,因为该事实可以通过间接推导得出。

 6. Prolog会回答:Y = ron; Y = harry。

 7. Prolog会报错,原则同2。

posted on 2015-06-27 10:47  seaman.kingfall 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/seaman-h-zhang/p/4603010.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值