Prolog 析取

2023-12-26

考虑这个 Prolog 谓词:

silly:-
    1 = 1.
silly:-
    1 = 2.

查询时,输出答案有两种状态:true 和 false。无论如何,有没有办法要求 Prolog 在析取中遇到 true 语句时立即终止?


问题是 ”无论如何,有没有办法要求 Prolog 在析取中遇到真实语句时立即终止"?

答案是 ”Use once/1当询问答案时".

例如:

     ?- [user] .
     silly:-
     1=1 .
     silly:-
     1=2 .
     silly:-
     2=2 .
     end_of_file .

     ?- %% query WITHOUT once {results in 2 answers} : %%
     silly .
     true ;
     true.

     ?- %% query WITH once {results in 1 answer} : %%
     once(silly) .
     true.

剪切的使用!不符合所述问题的语义要求。

Using cut would be appropriate if the question had been more like "Is there anyway to ask tell Prolog to terminate as soon as it hits a true statement** a statement specially indicated* in a disjunction" ?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Prolog 析取 的相关文章

  • 为什么在具体化中将 clpfd 变量分配给实际值?

    我正在开发一个 SWI Prolog 程序 该程序使用 CLP FD 约束来找到特定问题的解决方案 为此 我碰巧需要两个列表的 未定位 重叠 那是 List La长度为A List Lb长度为 B A gt B 未定位的重叠列表是La Lb
  • 如何在 Prolog 中计算数字序列的和

    任务是计算从0到M的自然数之和 我使用SWI Prolog编写了以下代码 my sum From To From gt To my sum From To S From 0 Next is 1 S is 1 my sum Next To S
  • 实现用户定义的算术函数

    如何添加函数 例如汉明权重 并在右侧出现的表达式中使用它是一些 is 2 goal 像 goal expansion 或 term expansion 这样的东西可以帮助这里吗 我承认这不是一个大功能 但它可以提高我的一些 Prolog 程
  • 如何为有效号码指定 DCG?

    我正在尝试为有效数字指定 DCG 如下所示 value Number gt valid number Number 基本上检查指定的值是否是数字 它也可能是变量 因此有必要检查 我不知道如何构建这个valid number不过 DCG 谓词
  • 如何找到排列的索引

    index List Idx Predicate will get List with permutation and I want to know index of permutation For example index 4 1 3
  • Prolog:子句在源文件中不在一起

    我有这段代码 Family tree female pen male tom male bob female liz female pat female ann male jim parent pam bob parent tom bob
  • Prolog 展平列表

    flatten A B R islist A gt flatten A R1 R R1 write A append A R1 R flatten B R1 flatten X X islist 这是我写的代码 但我有奇怪的问题 I get
  • Same_length/2 更好的纯版本

    鉴于频繁的纯定义same length 2 as same length same length As Bs same length As Bs same length L L loops 是否有一个纯粹的定义不会在这种情况下循环 类似于纯
  • 谓词对于列表中的所有元素都必须为 true

    我有一组事实 likes john mary likes mary robert likes robert kate likes alan george likes alan mary likes george mary likes har
  • Prolog中如何选择bagof、setof和findall

    如何在 bagof setof 和 findall 之间做出选择 有什么重要的区别吗 哪个最常用 哪个最安全 感谢您的评论 回答 我检查了SWI Prolog 手册页findall 3 http www swi prolog org pld
  • 从终端查询不会打印任何内容

    当在命令行中运行时 这 swipl g write 42 t halt 打印 42 到STDOUT正如预期的那样 然而 这 swipl g X 42 t halt 不打印任何内容 它只是返回 我如何让它打印在 REPL 中打印的内容 即X
  • 一次性删除不正确的后续解决方案

    我有一个谓词 它找到正确的解决方案 但随后又找到不正确的解决方案 data D data threshold nonredundantbumps D 5 Bs write D 3 6 7 8 2 4 5 6 9 4 7 3 D 3 6 7
  • Prolog DCG:找到最后一个元素

    我正在尝试更好地理解 DCG 的用途 为了做到这一点 我尝试将 LearnPrologNow 书中的一些练习转换为 DCG 表示法 然而 我却失败得很惨 我试图编写一个程序 仅命名列表中的最后一个元素 就这样 我只是想不出正确的 DCG 语
  • Prolog:从哪里开始解决类似扫雷的难题?

    我需要在序言中写一些类似扫雷的东西 我能够用 正常 语言做到这一点 但是当我尝试用序言开始编码时 我完全不知道如何开始 我需要一些提示 输入规格 板尺寸 m n m n 1 16 三元组列表 i j k 在哪里i 1 m j 1 n k 1
  • 序言中的“如果”?

    有没有办法在序言中执行 if 操作 例如如果变量为 0 则执行一些操作 将文本写入终端 甚至不需要 else 但我找不到 if 的任何文档 是的 ISO Prolog 中有这样一个控制结构 称为 gt 你像这样使用它 condition g
  • Prolog真的基于封闭世界假设吗?

    在下面封闭世界假设 https en wikipedia org wiki Closed world assumption 目前未知的事实是错误的 Prolog 的语义通常被认为遵循封闭世界假设 例如 here https cstheory
  • 替换 prolog 中的部分表达式

    我需要简化序言中的身份 例如x 0 x x x 0 ETC 为此 我需要替换表达式的部分内容 比如x 0 by x 您能帮我更换吗 Prolog 的一个巧妙之处在于您可以非常轻松地解构算术表达式 您的基本模板将如下所示 simplify X
  • Prolog — 对称谓词

    我必须在序言中模拟家谱 我有对称谓词的问题 Facts parent x y male x female y age x number Rules blood relation让我头疼 这就是我所做的 blood relation X Y
  • 尝试在 Prolog 中实现交换律

    我正在尝试创建一个知识库 我的问题有terminal 1 and connected 2我定义了以下规则 connected X Y connected Y X 由于我现在明白的原因 我认为 这进入了无限递归 然后 我尝试搜索SO并发现了这
  • 使用 DCG 解析变量

    我在使用 Prolog 的 DCG 表示法将以大写字母开头的序列解析为变量时遇到问题 例如 如果我有字符串 f a X y Z X 以及解析该字符串的 DCG 是否有任何方法可以将每个大写字母解析为唯一的 Prolog 变量 例如 解析Y到

随机推荐

  • 运行到Eclipse中的下一个断点(java)

    Eclipse中如何运行到下一个断点 我停在一个断点处 之后我需要运行一段很长的代码 直到遇到下一个断点 我搜索了SO和Eclipse但没有找到答案 只是对 Eclipse 调试器做了噩梦 仍然无法忘记我心爱的 Sun Workshop 我
  • 使用 Knockout 填充 Bootstrap 行和跨度

    本质上我正在尝试通过 Knockout 和 JSON 对象填充 Bootstrap 模板 引导脚手架 div class row fluid div class span4 h1 App Title h1 p App Description
  • IntelliJ、Android 和 Gradle

    我正在尝试让我现有的 Android 项目与 gradle 和 IntelliJ 12 一起使用 以前我让它与 Maven 一起工作 但它似乎不像 gradle 那么灵活 而且我认为我知道的是我需要更少的子文件夹 我的Android项目分为
  • 从 C++ 程序在 Linux 中运行另一个程序

    好的 我的问题是这样的 假设我有一个简单的 C 代码 include
  • 解包到 OracleConnection

    我有这段代码 曾经使用 JBoss 5 1 Oracle 11 ojdbc6 jar 正常运行 我根据需要获取了 OracleConnection InitialContext ic new InitialContext DataSourc
  • 将文本附加到 TextView 数据类型

    我是一名初学者 android java 程序员 我的背景主要是 C 和 C 在 C 中 如果我有一个名为 myWord 的字符串变量 并且它的值为 Hello 我可以使用 运算符附加附加信息 我在java中尝试了几次这个方法 显然我不能使
  • Vuejs - 未捕获类型错误:无法重新定义属性:$router

    我对 Vuejs 比较陌生 并且已经被以下错误困扰了一段时间 页面加载时出现 未捕获的类型错误 无法重新定义属性 router在 Function defineProperty 在 Function install VM2179 vue r
  • 重用单元格效果不佳 - TableView

    我的手机按钮有问题 在我的 tableView 中 每一行由以下部分组成 一张图像 一些标签和一个按钮 该按钮有一个复选标记图像 单击时 按钮的图像会发生变化 问题是另一个按钮的图像也会无缘无故地改变 发生这个错误是因为我的电池被重复使用
  • Scala——如何在非函数类型上使用函子?

    在阅读此博客上的 Functor 描述时 https hseeberger wordpress com 2010 11 25 introduction to category theory in scala https hseeberger
  • 页面加载时的 JavaScript 检查是否存在具有特定类的跨度(在 下),如果不存在,则删除整个

    我正在尝试为我最喜欢的目录列表网站创建自己的greasemonkey 脚本 问题并不是它列出的所有内容都对我有益 我检查了网站代码 看起来每个条目都在 现在 看起来 我只对具有以下格式的内容感兴趣 tr class project desc
  • 中位数排序的真实名称是什么和/或我在哪里可以找到更多相关材料

    我正在看书简而言之 算法由 O Reilly Media 出版 我正在阅读有关排序算法的部分 发现了一种称为中值排序的算法 因为我以前从未听说过它 而且我的 CS3 教科书 涵盖算法 也没有列出它 所以我用 google 搜索了它 并尝试在
  • 我如何告诉vb6不要在每次创建dll时创建新版本的interfaces/com对象?

    我有 NET 代码使用的 vb6 com 服务器 ActiveX DLL 项目 每次我将更改放入 vb6 代码并创建 dll 时 我也必须重新编译我的 NET 客户端代码 因为看起来 VB6 会生成新的 GUID 或接口和 com 对象的版
  • 有没有办法在 Java 中生成 8.3 或“短”(Windows) 版本的文件名?

    在我们的应用程序中 我们允许用户打开文件和目录 Java 6 为我们提供了 java awt Desktop getDesktop open file 效果很好 不过 由于我们需要保证Java 5的兼容性 所以我们还实现了一个打开文件的方法
  • PIVOT 不起作用“)”附近的语法不正确

    T SQL代码 SELECT iCarrierInvoiceDetailsID 1 2 3 FROM GroundEDI dbo tblCarrierInvoiceDetails PIVOT MAX dTotalCharge FOR iCa
  • /proc/modules 中模块实例的含义

    我用过cat proc modules列出模块详细信息 下面的模块显示有 4 个实例 poe isr 3046 4 Live 0xc37e1000 O 这是什么意思 我如何查看这些实例的使用情况 下一个模块显示为 0 个实例并且处于活动状态
  • ionic 2 在通知中显示文件下载进度

    我想显示如图所示的下载通知 我正在使用 ionic 2 Cordova 文件传输 Cordova 文件传输将下载文件 但不会在通知中心显示进度条 使用时会显示进度条下载管理器 https developer android com refe
  • 是否有从文件中读取前 n 行的实用方法?

    我搜索了以下流行的库 Guava 文件 readLines nio 文件 readFirstLine or 文件 readAllLines 阿帕奇共享区 FileUtils readLines 所有方法将整个文件作为字符串集合读入内存 但这
  • “空条件运算符短路”是什么意思?

    未来访客请注意 这个问题是基于错误的重现代码 这 操作员确实短路了 您现在可以关闭此浏览器选项卡 网络上有许多来源声称空条件运算符 短路 例如http www informit com articles article aspx p 242
  • “npm-run-all”未被识别为内部或外部命令

    我在 Windows 计算机上安装了 npm run all 并配置了环境变量 可能需要也可能不需要 但收到错误 npm run all 不被识别为内部或外部命令 可运行的程序或批处理文件 我正在尝试构建我当前的项目npm run buil
  • Prolog 析取

    考虑这个 Prolog 谓词 silly 1 1 silly 1 2 查询时 输出答案有两种状态 true 和 false 无论如何 有没有办法要求 Prolog 在析取中遇到 true 语句时立即终止 问题是 无论如何 有没有办法要求 P