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


相关推荐

  • Web Worker详解

    Web Worker详解WebWorker1.WebWorker概述最近在看一些关于WebWorker的数据和视频,把以下重点分享给大家(推荐有基础的小伙伴收藏)客户端JavaScript其中一个基本的特性就是单线程,比如浏览器无法同时运行两个事件处理程序,也无法在一个事件处理程序运行的时候触发定时器。之所以设置单线程的理论就是,客户端的JavaScript的函数不能运行太长时间,否则会导致循环事件,…

    2025年5月22日
    0
  • Java设计模式简介(一):创建型模式

    Java设计模式简介(一):创建型模式

    2021年4月8日
    146
  • mac idea2021激活码【2021最新】

    (mac idea2021激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
    42
  • GPG error_gpt异常是什么意思

    GPG error_gpt异常是什么意思问题:sudoapt-getupdate时报错GPGerror解决方案://F42ED6FBAB17C654是根据你报错那一行确定的sudogpg–keyserverkeyserver.ubuntu.com–recvF42ED6FBAB17C654sudogpg–export–armorF42ED6FBAB17C654|sudoapt-keyadd-然后:sudoapt-getupdate…

    2022年10月13日
    0
  • 介绍篇 决策引擎环节

    介绍篇 决策引擎环节决策引擎概念简述在我理解上决策引擎类似是一个管道、运输系统,连通整个风控流程,所有的规则和评分卡以及流程都覆盖其中,分配到每一个环节(比如人工),将结果返回给决策引擎,走入下一个流程决策引擎的使用规则决策引擎的分流效果评分卡是内置在决策引擎当中,基于评分卡的分段,评分卡的使用具体参见:评分卡在策略中的使用,进行分流,分流决策的目的是为让好客户以及有借款欲望客户进一步走入下一流程决策引擎…

    2022年6月22日
    34
  • docker(9)Dockerfile制作镜像「建议收藏」

    docker(9)Dockerfile制作镜像「建议收藏」前言如果我们已经安装了一个python3的环境,如果另一台机器也需要安装同样的环境又要敲一遍,很麻烦,这里可以配置Dockerfile文件,让其自动安装,类似shell脚本Dockerfile编写

    2022年7月29日
    3

发表回复

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

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