将查询的所有结果放入 Prolog 中的列表中

2023-12-26

我想知道如何创建一个谓词,将从某个查询中获得的所有结果(因此我得到一个结果并按分号,直到得到 False)放入列表中。

例如,如果我写foo(X,[1,2,3]).在一些 Prolog 监听器中,假设结果是

X=[11];
X=[22];
False.

我想将所有这些结果放在一个列表中,因此会发生类似以下的情况。

?-another_foo(X,[1,2,3]).
X=[[11],[22]].

another_foo 会以某种方式使用 foo 创建一个包含 foo 的所有结果的列表。 我只是不知道怎么办。


使用内置谓词findall/3:

?-findall(X0, foo(X0, [1,2,3]), X).
X = [[11], [22]].

您可以定义您的another_foo/2:

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

将查询的所有结果放入 Prolog 中的列表中 的相关文章

  • 序言中的谓词

    我需要在 prolog 中定义一个谓词 它将一个列表作为输入 对 gt 5 的数字的平方求和 并减去 这就是我目前所拥有的 pred 0 pred Head Tail Result gr85 Head pred Tail Total Res
  • prolog 如何使用 succ 运行递归查询?

    有人可以向我解释一下为什么这个序言查询会这样工作吗 定义是 add 0 Y Y add succ X Y succ Z add X Y Z 鉴于这种 add succ succ succ 0 succ succ 0 R 这是查询的轨迹 Ca
  • 如何查明 Prolog 是否执行尾调用优化

    使用SWI Prolog Win x64 的开发版本 我为 a 编写了一个 DCG 谓词确定性词法分析器 托管在 github 上 https github com sebgod goldparser prolog 因此所有外部谓词都没有留
  • SWI-Prolog 中的可逆谓词和字符串

    append 3是一个非常强大的谓词 假设我想要一个以相同方式工作但针对 SWI Prolog 字符串的谓词 我看到的最简单的方法是将这些字符串转换为列表string codes 2 然后应用append 3 然后使用string code
  • 在 SWI-Prolog 中,是否有一种简单的方法可以使用 REPL 将数字从一个基数转换为另一个基数?

    在使用 REPL 的 SWI Prolog 中 可以轻松地从任何基数转换为基数 10 例如 X 16 FF X 255 X 2 11111111 X 255 然而这失败了 没想到它会起作用 但显示了我的想法 2 X 16 FF ERROR
  • 使用失败、回溯 Prolog 查找列表的最小值

    我想使用导致回溯的失败来计算列表的最小值 我如何改变分钟 分钟 X 分钟 以使其工作 min X A B X is the min of A B min X X Y X lt Y min Y X Y Y lt X member X X me
  • 在Prolog中,可以按随机顺序选择解决方案吗?

    如果我有以下情况 a X X 1 X 2 X 3 X 4 我可以按确定性顺序生成解决方案 a X X 1 X 2 X 3 X 4 是否有任何方法可以要求系统以非确定性 随机顺序产生解决方案 例如 a X X 4 X 1 X 3 X 2 我知
  • prolog中输入/输出参数的区别

    Prolog谓词定义中的输入和输出参数有什么区别吗 这与其他语言 例如Scheme 和C 相比如何 我希望我理解你的问题 您应该研究一下 Prolog 中如何实现统一 因为它会让事情变得更清晰 反正 简而言之 没有内置方法可以将 Prolo
  • 在序言中返回列表

    我想问一个关于返回列表的问题 事实 团队 团队名称 总监 国籍 总体目标 team milan allegri italy 8 5 team inter benitez italy 7 6 team barcelona guardiola
  • Prolog:覆盖谓词和使用它之间的区别

    我觉得自己真的很愚蠢 感觉自己错过了一些东西 我基本上有两个文件 module pl通用逻辑规则 可重用 state pl一个针对当前场景 在模块文件中 module pl 我已经声明 inside Food Eater T isTime
  • Prolog 变量查询中的“\+”问题

    我正在读 七周七种语言 atm 我对一些 Prolog 查询感到困惑 我不明白对 否 的回答 The friends pl文件看起来像这样 likes wallace cheese likes grommit cheese likes we
  • 如何在 Prolog 中为变量(如字符串)分配多个值?

    今天早些时候 我寻求帮助以在序言中构建数据库以及如何通过参数搜索 有人提出了这个 您还可以向每个处理器添加术语列表 例如 processor pentium g4400 brand intel family pentium series g
  • Prolog - 从列表中删除具有相同第一个值的对

    我有这样的对象列表 list obj x y obj x z obj a b obj b c 我想删除那些共享相同第一个值的元素 这样我就可以使用修改后的列表 在这种情况下 最终列表将如下所示 list obj a b obj b c 有人
  • 寻找最大最小值集合

    我正在尝试编写一个 天真的或半天真的 程序 给定一组元素和许多玩家将其划分为这个数量的玩家 并且对于每个这样的划分取最小值 按总和 子集 然后 我想计算所有这些最小除法的最大值 这被称为https en wikipedia org wiki
  • Prolog 管线任务

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

    我正在尝试用简单的极小极大算法来解决井字游戏 简单 但应该涵盖很多语言 到目前为止我所拥有的 该板表示为 9 个 未绑定 变量的数组 这些变量可以设置为x or o 获胜条件基本上是 win Player X1 X2 X3 X1 Playe
  • 如何在 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
  • 列表中的连续元素

    我正在阻止一个谓词来编码Prolog 我需要对两个谓词进行编码 如果我打电话 u a b c d e f X 它会给X a b X b c X c d 如果我打电话 v a b c d e f X 它会给X a b X c d X e f
  • 问题 - 序言中的形式语言

    我正在尝试构建一个 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 逻辑编程背后的通常数学理论禁止 创建循环项 规定发生检查应该是 每

随机推荐

  • .NET Framework可以在Win98上使用吗?

    我需要为客户编写一个在 Windows 98 上运行的小工具 由于这是一个非常小的项目 我希望我可以避免使用本机 C 并使用 C The net框架2 0下载 http www microsoft com downloads details
  • 在哪里可以找到 ReportEvent 函数使用的好示例?

    与大多数 传统 MSDN 页面一样 该页面报告事件 http msdn microsoft com en us library aa363679 VS 85 aspx信息太少 我无法理解它的意义 我尝试过搜索 但找不到一个好的 干净的 简单
  • 如何在经典 ASP 中设置断点? (IIS7/VS2010)

    我有一个混合 ASP NET 经典 ASP 应用程序 我希望能够在 ASP 代码中设置断点 这可能吗 在Win7上使用VS2010 Ultimate运行IIS7 在 VBScript 中 Stop http msdn microsoft c
  • 使用 MPI 分散不同大小的矩阵块

    假设所有矩阵都按行优先顺序存储 说明该问题的一个示例是将 10x10 矩阵分布在 3x3 网格上 以便每个节点中的子矩阵的大小如下所示 3x3 3x3 3x4 3x3 3x3 3x4 4x3 4x3 4x4 我在 Stackoverflow
  • 改进单选按钮的使用以启用/禁用表单字段

    我有两个单选按钮和两个相应的表单字段 根据选择的单选按钮 一个表单字段将被禁用 而另一个表单字段将被启用 我的代码可以工作 但我认为它可以改进 现在我有两个独立的进程 检查页面加载时选择了哪个单选按钮并禁用相应的字段 另一个在页面加载后响应
  • 将下拉菜单与年份绑定

    我必须在 C 中绑定一个下拉框 其中包含从 2008 年到当前年份的年份 我怎样才能实现它 您可以使用以下命令构建整数序列System Linq Enumerable Range var startYear 2008 myDropDownL
  • Swift 3 - 如何提取正则表达式中捕获的组?

    我正在使用 Swift 3 并尝试访问捕获的组 let regexp ALREADY PAID NOT ALR PROVIDER MAY READY MAY BILL BILL YOU PAID n d d d check if some
  • 连接被拒绝 - connect(2) 用于“localhost”端口 25 Rails

    在培训期间 我正在开发一个网站 我们使用 Ruby on Rails 我们需要向用户发送邮件 所以我创建了一个邮件程序 我尝试过将 smtp 放在两者中development rb and environment rb config act
  • 如何在action类和jsp页面之间传递对象数据?

    我有一个名为 Code 的 Java 类 它具有与代码相关的所有值 例如codeId codeDescription等等及其 getter 和 setter 我正在成功检索一个操作类中的代码数据 我正在使用 struts 2 现在我想将这些
  • Go 中的 Unix FIFO?

    有没有办法用Go语言创建unix FIFO 没有Mkfifo nor Mknod in os包 尽管我预计命名的 FIFO 主要用于 posix 操作系统 事实上 有一个创建未命名的 FIFO 管道 的函数 但没有创建命名管道的函数 我是唯
  • 使用constraintEqualToAnchor()时设置自动布局约束后如何更改它们?

    我尝试使用以下命令设置具有自动布局约束的视图constraintEqualToAnchor override func viewDidLoad super viewDidLoad let myView UIView myView backg
  • 如果不存在则调用自由函数而不是方法

    假设您有一系列与类型无关的类 通过返回值的给定方法来实现共同概念 class A public int val const class B public int val const 假设您需要一个通用的自由函数T为未实现的任何类型返回常规值
  • 通过 ASPX 页面流式传输 PDF 数据

    我如何在我的网络服务器上流式传输 pdf 文件 并像谷歌文档一样在我自己的页面中显示它 该页面嵌入到页面中 None
  • swagger-codegen 客户端:如何在模型上包含 Jackson 注释

    我正在使用 swagger codegen 生成一个休息客户端 但遇到一个问题 我正在使用的服务返回一个具有继承的模型 API 模型如下所示 public class Person private List
  • Ansible 日期时间时区转换

    有没有办法在我的剧本中的 调试 语句中将ansible日期转换为不同的时区 我不想在剧本级别设置全球时区 我有这个 debug msg Y m d H M S strftime ansible date time epoch 这工作正常 但
  • 尝试的条件约束不是可索引操作

    我正在使用 DynamoDB 对于除 EQ 之外的所有 ComparisonOperators 的查询 API 它一直给出 尝试的条件约束不是可索引操作 错误 是什么原因 TableName My Table name IndexName
  • 使用 C# 程序为 Canon EOS Rebel XS 创建 USB 延时拍摄

    我想知道这是否可能 我想制作自己的软件来通过远程快门释放来控制快门的释放 从图中我看到它的电压为 3 3V 空载 阈值电压为 1 8V 我想知道如果我理解正确的话 我是否可以使用限制大约 5 25v 的 USB 电缆电压 这是否可能 或者我
  • R 根据前一行中的值删除行

    我是 R 新手 尝试根据前一行的值删除行 样本数据 Cust ID Date Value 500219 2016 04 11 12 00 00 0 500219 2016 04 12 16 00 00 0 500219 2016 04 14
  • /usr/bin/sudo 必须由 uid 0 拥有并设置了 setuid 位版本 .ubantu14.04 LTS

    当我为 npm 设置 EACCESS 并在终端中运行 chown 命令以更改所有者权限时 但现在我陷入了困境 sudo usr bin sudo 必须由 uid 0 拥有并设置了 setuid 位 我的版本是 ubuntu14 04 LTS
  • 将查询的所有结果放入 Prolog 中的列表中

    我想知道如何创建一个谓词 将从某个查询中获得的所有结果 因此我得到一个结果并按分号 直到得到 False 放入列表中 例如 如果我写foo X 1 2 3 在一些 Prolog 监听器中 假设结果是 X 11 X 22 False 我想将所