急切地评估 Prolog 中的所有谓词调用

2024-02-24

正在阅读有关元谓词的 SWI-Prolog 文档 http://www.swi-prolog.org/pldoc/man?section=metapred,我最初假设call(f, ...)相当于f(...), where f是一些谓词。但我观察到,在某些情况下,两者的行为实际上是不同的。例如,假设知识库包含子句f(g(x))。然后查询call(f, g(x))成功了,而f(call(g, x))才不是。这是有问题的,因为我有时需要使用其主体包含嵌套谓词调用的子句。我希望 Prolog 急切地评估所有谓词调用(我想知道这是否是正确的词?),以便查询f(call(g, x))减少到f(g(x))在统一开始之前并取得成功。这可能吗?


None

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

急切地评估 Prolog 中的所有谓词调用 的相关文章

  • 如何从序言中的列表中删除列表?

    我想在序言中实现以下问题 Given L1 1 2 3 4 and L2 2 3 4 调用名为remove list L1 L2 L 的函数将从L1中删除L2 所以L将是 1 但是 如果第二个列表的元素与 L1 中的元素顺序不同 或者更准确
  • Prolog 管线任务

    我有一项任务是在序言中制作一张简化的地铁地图 其中一部分要求制定一项规则来检查两个车站是否在同一条线上 我有一条规则 但它似乎不起作用 这就是我到目前为止所拥有的 adjacent nh lg central 4 adjacent lg o
  • 井字游戏的极小极大

    我正在尝试用简单的极小极大算法来解决井字游戏 简单 但应该涵盖很多语言 到目前为止我所拥有的 该板表示为 9 个 未绑定 变量的数组 这些变量可以设置为x or o 获胜条件基本上是 win Player X1 X2 X3 X1 Playe
  • 非成员规则在 Prolog 中无法按预期工作

    我正在尝试在 Prolog 中创建一个迷宫程序 其目的是找到一条从迷宫起点到迷宫中心点 m 的路线 迷宫由使用四种颜色之一连接的正方形组成 蓝色 绿色 紫色或橙色 从起点到中心的路线遵循四种颜色的重复图案 我创建了以下代码 link2 A
  • 在列表列表中查找形状

    节目说明 该计划的目的 我的程序旨在计算 20X15 大小的平面中形状的位置 我有一个形状列表 其中包含形状类型 其 ID 半径或高度以及其在平面上的预期 X Y 位置 我有一个不同的二元运算列表 仅包含形状类型 其 id 及其与另一个形状
  • Prolog 罗马数字(属性语法)

    我正在做一项作业prolog questions tagged prolog扫描数字列表并应返回该列表是否是有效的罗马数字以及数字的十进制值 前任 1 roman N I N 1 true 2 当我运行我认为应该工作的程序时 十进制值总是正
  • 问题 - 序言中的形式语言

    我正在尝试构建一个 DCG 它可以识别与此形式匹配的所有列表 a n b 2m c 2m d n 我写下了以下规则 s gt s gt ad ad gt a ad d ad gt bc bc gt b b bc c c bc gt a gt
  • SWI Prolog 使用的检查优化会发生什么情况?

    去引用SICStus Prolog 手册 https sicstus sics se sicstus docs 3 12 9 html sicstus Occur html 逻辑编程背后的通常数学理论禁止 创建循环项 规定发生检查应该是 每
  • Prolog 过滤自定义目标失败的所有元素的列表

    我正在尝试写一个谓词filter List PredName Result 过滤一个List目标的所有要素PredName失败并随后返回Result列表 谓词PredName 1应该在调用过程时定义filter 3例如可以是 test N
  • 根据一个值找到列表内列表的最小值

    我在序言中有这个列表 dublin london 1000 dublin moscow london 5000 我想计算列表的最小值 这样答案应该是 dublin london 1000 这个问题有一些类似的问题序言中列表列表中的最小值 h
  • Same_length/2 更好的纯版本

    鉴于频繁的纯定义same length 2 as same length same length As Bs same length As Bs same length L L loops 是否有一个纯粹的定义不会在这种情况下循环 类似于纯
  • 在 SWI Prolog 中使用 process_create/3 使用命令提示符或 shell 时出错

    在 Windows 7 上 当我在 SWI Prolog 中使用 process create 3 打开 Notepad exe 等应用程序时 记事本将打开 但是 它不适用于使用命令提示符的应用程序 例如 当我尝试打开命令提示符窗口时 使用
  • Prolog中如何选择bagof、setof和findall

    如何在 bagof setof 和 findall 之间做出选择 有什么重要的区别吗 哪个最常用 哪个最安全 感谢您的评论 回答 我检查了SWI Prolog 手册页findall 3 http www swi prolog org pld
  • 查找相邻成员

    我必须找出列表中的两个成员是否相邻 限制是使用append 3谓词 到目前为止 我已经完成了下面的操作 如果它是真的 它就有效 否则我得不到答案 就像它永远运行一样 adjacent X Y L append L1 X Y T1 appen
  • 如何在 ISO Prolog 中定义(和命名)相应的安全术语比较谓词?

    标准术语顺序 ISO IEC 13211 1 7 2 术语顺序 针对所有术语 包括变量 进行定义 虽然这有很好的用途 想想实施setof 3 这使得 8 4 术语比较中内置函数的许多其他干净且合乎逻辑的使用成为声明式噩梦 到处都是 imps
  • Prolog 中的隔离列表

    我很难理解如何让我的代码显示由偶数和奇数组成的隔离列表 我什至不确定我的理解缺乏什么 显然我对这门语言很陌生 必须在学校使用它 我的命令式和功能性思维不会让我知道这到底是怎么回事 哈哈 现在 不 我不是要求你做我的作业 我只是请你帮我看看我
  • 如何为这个“移动块”Prolog 练习实现求解谓词?

    我正在使用 Ivan Bratko 的书 人工智能编程 学习 Prolog 我发现实施拟议练习的最后部分有些困难 该练习是一个使用图形来决定如何移动块并按顺序排列它们的程序 这是与程序必须执行的操作相关的图像 正如您在上图中看到的 可以使用
  • prolog跟踪如何使用

    跟踪prolog程序时如何进行第二步 例如 我想跟踪以下简单程序 length1 0 length1 X Xs N length1 Xs N1 N is N1 1 我跟踪程序 trace length 1 2 3 N Call 7 leng
  • Prolog,确定图是否是非循环的

    我需要定义一个谓词 acycling 1 它将一个图作为输入并确定该图是否是非循环的 所以根据我的理解 graph1 a b graph1 b c graph1 c a 将返回 no 和 graph2 a b graph2 b c 将返回是
  • Prolog DCG set_prolog_flag double_quotes 源代码指令位置很重要;文档?

    我通过 SWI Prolog 惨痛地了解到 Prolog 指令的位置set prolog flag重要的是源代码文件 我发现的关于使用指令加载源代码文件的唯一有价值的文档位于加载Prolog源文件 http www swi prolog o

随机推荐

  • 我如何理解 rbind 的警告?

    如果我有两个具有相同列名的 data frame 我可以使用 rbind 来创建单个数据框 但是 如果我有一个是一个因子 另一个是一个整数 我会收到如下警告 警告消息 在 lt factor tmp ri 值 c 1L 1L 0L 0L 0
  • Eclipse、Android 插件、安装新软件只是显示“待处理”

    我正在尝试按照此处的说明安装适用于 Eclipse 的 Android 插件 32 位 Windows 7 Eclipse Java Indigo 版本 迈克 普拉特 http www mikeplate com 2009 10 27 ge
  • 如何将数据随机分成三个相等大小?

    我有一个包含来自三个不同项目的 9558 行的数据集 我想将这个数据集随机分成三个相等的组 并为每个组分配一个唯一的 ID 以便Project1 Project 2 Project3变成Project1 Project2 and Proje
  • postgresql:将 bytea 转换为 bigint

    我必须将查询的 bytea 条目转换为 bigint 这怎么可能做到呢 更多信息 我有一个休眠存储库 如下所示 Query value update Sample Table set other id 1 where id 2 native
  • r 中字符变量名称的循环

    我有一个变量列表 例如 a1 a2 a3 然后我想对这些变量进行循环 例如赋值 我尝试了粘贴 它只给出了像 a1 这样的字符 这不是我真正想要的 谁能提供解决方案吗 我们可以用mget获取 a 中的值list lst lt mget pas
  • 将 csv 转换为 JSON 树结构?

    我读了这些问题 csv数据到d3中的嵌套json树 https stackoverflow com questions 19043561 csv data to nested json tree in d3 在python中从csv列表创建
  • 使用 @DefaultProperty 时“元素未定义默认属性”

    我正在尝试创建一个自定义 JavaFX 元素以在 FXML 中使用 但是当FXMLLoader尝试解析它 它抛出一个异常 指出 javafx fxml LoadException 元素未定义默认属性 然而 经过一些研究后 我相信我正确地定义
  • SQLite动态查询

    我有一个 SQLite 数据库 我想做的是用户选择一个过滤器 例如 我有一个书籍数据库 用户只想查看 阿加莎克里斯蒂的书籍 中的数据 因此 我制作了一个带有选择选项的微调器 然后有意将所选字段传递给执行查询选择的另一个活动 我的问题是 如何
  • 将内联 SQL 转换为存储过程

    我正在开发现有的 ASP NET 应用程序 当前的应用程序使用了大量的内联查询 现在他们只想将所有查询重写为存储过程 我的问题是 这些查询非常 动态 并且查询是根据不同的条件连接起来的if else条件 例如 string query Se
  • 为什么 RestTemplate 会消耗过多的内存?

    Question 为什么 Spring 的 RestTemplate 使用过多的堆 特别是G1 Old Generation 发送文件时 Context 我们观察到休息模板 https docs spring io spring frame
  • LINQ 中的条件Where 子句

    假设我在网格中显示数据 并且有许多文本框用于过滤数据 员工 ID 的文本框 如果员工 ID 文本框为空 则不会添加 where 子句 但如果不为空 则将添加 where 子句 如果工资文本框有值或员工姓名文本框有值 我们可以以同样的方式过滤
  • 经典蓝牙 (2.1) 设备可实现的最小数据包延迟是多少?

    我正在使用 RN42 http www microchip com wwwproducts en RN42 http www microchip com wwwproducts en RN42 蓝牙模块以 115200 波特率 UART S
  • gem install Rails 构建错误无法构建 gem 本机扩展

    我的主要目标是让Redmine 与WAMPServer 一起工作 我按照以下步骤操作 如何与 WampServer 一起安装 Ruby on Rails https stackoverflow com questions 2025449 h
  • 在 TypeScript 中导入 JSON 文件

    我有一个JSON文件如下所示 primaryBright 2DC6FB primaryMain 05B4F0 primaryDarker 04A1D7 primaryDarkest 048FBE secondaryBright 4CD2C0
  • jQuery、Chrome 和“selected”属性异常

    我在 Chrome 中遇到了一个问题 但我无法判断这是 Chrome 的错误 jQuery 的错误还是我的代码中的错误 我搜索了 Chromium 的未解决问题 但找不到任何内容 jQuery 也是如此 我在这里创建了一个 JSFiddle
  • 在 Node.js 中,给定一个 URL,如何检查它是否是 jpg/png/gif?

    我目前的方法是这样的 var request require request var mime require mime var fs require fs var uri http www sweetslyrics com images
  • 为什么 CodeIgniter 中的分页链接对我不起作用?

    我正在尝试对我的产品使用 codeigniter 分页 因此有多个产品页面 但它不适合我 我不知道为什么 这是我的控制器中的分页功能 code om in allecadeaus te bepalen hoeveel producten e
  • 如果必要的单元测试失败,我可以使单元测试不确定吗?

    考虑对字典对象进行单元测试 您可能编写的第一个单元测试只是将项目添加到字典并检查异常 下一个测试可能类似于测试计数是否准确 或者字典是否返回正确的键或值列表 然而 后面的每种情况都要求字典首先能够可靠地添加项目 如果添加项目的测试失败 我们
  • 贝宝和PHP?

    我有两种方法可以从用户处检查 1 if user input Amount field lt 5 user credit do update database the remain amount in my database table 2
  • 急切地评估 Prolog 中的所有谓词调用

    正在阅读有关元谓词的 SWI Prolog 文档 http www swi prolog org pldoc man section metapred 我最初假设call f 相当于f where f是一些谓词 但我观察到 在某些情况下 两