prolog实例_prolog实例

prolog实例_prolog实例这是保存到文件的代码如下:room(kitchen).room(office).room(hall).room(‘diningroom’).room(cellar).door(office,hall).door(kitchen,office).door(hall,’diningroom’).door(kitchen,cellar).door(‘dining

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

这是保存到文件的代码如下:

room(kitchen).
room(office).
room(hall). 
room('dining room').
room(cellar). 

door(office, hall).
door(kitchen, office).
door(hall, 'dining room').
door(kitchen, cellar).
door('dining room', kitchen).

location(desk, office).
location(apple, kitchen). 
location(flashlight, desk). 
location('washing machine', cellar).
location(nani, 'washing machine').
location(broccoli, kitchen).
location(crackers, kitchen).
location(computer, office).

edible(apple).
edible(crackers).
tastes_yucky(broccoli).
here(kitchen). 

Jetbrains全家桶1年46,售后保障稳定

现在打开编辑器GNU-Prolog,打开文件可以直接询问机器:

房间里面有什么,通过;号隔开,我们可以看到机器会根据上面逻辑告诉你有什么。

| ?- room(X).

X = kitchen ? ;

X = office ? ;

X = hall ? ;

X = 'dining room' ? ;

X = cellar

(31 ms) yes
| ?- 

接下来:在房间里面并且可以吃的有什么?

| ?- location(X,kitchen),edible(X).

X = apple ? ;

X = crackers ? ;

no

逻辑告诉我们有:apple、crackers、no表示没有了。

现在输入trace.竟如debug模式,输入notrace退出。

| ?- trace.
The debugger will first creep -- showing everything (trace)

(15 ms) yes
{trace}
| ?- notrace.
The debugger is switched off

yes

在debug模式下输入上面语句我们可以看到,调试会有四个端口:Call、Fail、Redo、Exit。

{trace}
| ?- location(X,kitchen),edible(X).
      1    1  Call: location(_42,kitchen) ? 
      1    1  Exit: location(apple,kitchen) ? 
      2    1  Call: edible(apple) ? 
      2    1  Exit: edible(apple) ? 

X = apple ? ;
      1    1  Redo: location(apple,kitchen) ? 
      1    1  Exit: location(broccoli,kitchen) ? 
      2    1  Call: edible(broccoli) ? 
      2    1  Fail: edible(broccoli) ? 
      1    1  Redo: location(broccoli,kitchen) ? 
      1    1  Exit: location(crackers,kitchen) ? 
      2    1  Call: edible(crackers) ? 
      2    1  Exit: edible(crackers) ? 

X = crackers ? ;
      1    1  Redo: location(crackers,kitchen) ? 
      1    1  Fail: location(_42,kitchen) ? 

(31 ms) no

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234694.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • edge 浏览器打开总跳向 hao.360

    edge 浏览器打开总跳向 hao.360edge浏览器突然每次打开都跳向hao.360.com注册表查找hao.360.com找不到发线每次调换都会 http://511zdqdkj.yc.anhuang.net先到这个域名拿这个域名搜索也找不到没办法通过改注册表的方式恢复用tengxun管家修改浏览器主页不生效win10升级win11不生效升到win11仍不生效,觉得没办法了就将hao.360.com解析到127.0.0.1至少不用看广告了。后面发现在win11下方的任务栏点击

    2022年7月26日
    16
  • 某些软件点击导出时出现NavigationCancelled错误解决方法

    某些软件点击导出时出现NavigationCancelled错误解决方法原因一般是由于http页面跳转到https页面或者反之的情形造成IE浏览器判定为安全隐患,所以终止打开页面。解决方法:1.打开Internet属性窗口,可以由以下三种方法打开。三种方法任选其一a)打开IE浏览器,点击“工具”或者右侧齿轮图标,选中“Internet选项”b)运行中,输入“inetcpl.cpl”,回车,如下图c)在控制面板中,选中“Internet选…

    2022年7月26日
    6
  • mysql 快速导入数据_MySQL导入数据

    mysql 快速导入数据_MySQL导入数据有时候需要批量插入一批数据到数据库,有很多种办法,这里我用到过三种办法:1、通过Excel直接生成insert语句=CONCATENATE("insertintoaisee_pingfen_fengcai(id,order_n,department,subject_n,teacher_name)values(‘",A1,"’,’",B1,&

    2022年9月21日
    2
  • 列举出linux文件和目录常用的命令_查看centos根目录下有哪些内容

    列举出linux文件和目录常用的命令_查看centos根目录下有哪些内容目录命令总览ls(英文全拼:listfiles):列出目录及文件名cd(英文全拼:changedirectory):切换目录pwd(英文全拼:printworkdirectory):显

    2022年7月30日
    10
  • linuxiostat命令详解_ifstat命令

    linuxiostat命令详解_ifstat命令Linuxiostat命令详解iostat主要用于监控系统设备的IO负载情况,根据这个可以看出当前系统的写入量和读取量,CPU负载和磁盘负载。1.命令格式:iostat参数时间次数2.命令参数:-C显示CPU使用情况-d显示磁盘使用情况-k以KB为单位显示-m以M为单位显示-N显示磁盘阵列(LVM)信息-n显示NFS使用情况-p[磁盘]显示磁盘和分区的情况-t显示终端和CPU的信息-x显示详细信息-V显示版本信息3.常用

    2022年10月6日
    2
  • 51单片机之逻辑运算指令ANL、ORL、XRL等

    51单片机之逻辑运算指令ANL、ORL、XRL等文章目录前言一、简单操作指令CLR、CPL、SWAPCLRACPLASWAPA二、位移指令RL、RR、RLC、RRCRLARRARLCARRCA三、逻辑“与”指令ANLANLA,XXXANLdirect,XXX四、逻辑“或”指令ORLORLA,XXXORLdirect,XXX五、逻辑“异或”指令XRLORLA,XXXXRLdirect,XXX前言…

    2022年7月26日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号