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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 模板模式Template Method

    模板模式Template Method模板模式Template Method组件协作典型模式案例模式定义重要总结组件协作现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,”组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是两者之间协作时常用的模式典型模式Template MethodStrategyObserver / Event动机在软件构造过程中,对某一项任务,它常常有稳定的的整体操作骨架,但各个子步骤 却有很多改变的需求,或者由于固有的原因,(比如框架和应用之间的关系)而无法和任务的整体结构同时

    2022年8月9日
    8
  • Hive函数row_number实现[通俗易懂]

    Hive函数row_number实现[通俗易懂]需求:查询一批用户最后三次登陆时间,ip数据row_number实现”’importorg.apache.hadoop.hive.ql.exec.UDF;publicclassRowNumberextendsUDF{privatestaticintMAX_VALUE=50;privatestaticStringcomparedColumn[]=newString[

    2022年5月8日
    137
  • LFU算法

    LFU算法LFU 算法 淘汰访问频次最低的元素 如果访问频次最低的数据有多条 则需要淘汰最旧的数据 classLFUCach 存放 key 到 val 的映射 HashMap Integer Integer keyToVal newHashMap lt gt 存放 key 到使用频次 freq 的映射 HashMap Integer Integer keyToFreq newHashMap Integer Integer Integer Integer

    2025年9月15日
    6
  • PHP-递归算法「建议收藏」

    PHP-递归算法「建议收藏」在PHP开发过程中,递归算法通常用于无限极分类。那么所谓递归就是一种函数调用自身的机制。简单来说就是在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用。并且递归算法的实现方法是有多种的,如通过“静态变量”、“全局变量”、“引用传参”的方式。下面我们就结合具体的代码示例,给大家介绍其中一种方法即利用静态变量的方法!代码如下:输…

    2022年8月11日
    5
  • MySQL MHA配置常见问题

    MHA在MySQL数据库中被广泛使用,它小巧易用,功能强大,实现了基于MySQLreplication架构的自手动主从故障转移,从库重定向到主库并自动同步。尽管如此,在部署配置的过程中,由于疏忽总难

    2021年12月26日
    47
  • ideaIU-2022.01.13激活码-激活码分享

    (ideaIU-2022.01.13激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html747EFQ8BIF-eyJsa…

    2022年3月31日
    63

发表回复

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

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