如何在 Prolog 中求反

2024-04-11

我是 PROLOG 新手,正处于练习的开始阶段这一页 https://sites.google.com/site/prologsite/prolog-course/a-first-glimpse。给定规则parent(X,Y)和male(X),我尝试将规则 mother(X,Y)定义为

mother(X, Y) :-
    not(male(X)),
    parent(X, Y).

但是,在 GNU Prolog 中我收到以下错误:

| ?- mother(lina, julia).
uncaught exception: error(existence_error(procedure,not/1),mother/2)
| ?- 

\+/1是 ISO Prolog 谓词“否定”。请注意,“否定”在这里意味着此时无法证明。

您可以参考这个优秀的答案 https://stackoverflow.com/questions/8523608/logical-not-in-prolog/8523825#8523825通过@false了解有关该主题的更多信息

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

如何在 Prolog 中求反 的相关文章

  • 在 SWI-Prolog 中,是否有一种简单的方法可以使用 REPL 将数字从一个基数转换为另一个基数?

    在使用 REPL 的 SWI Prolog 中 可以轻松地从任何基数转换为基数 10 例如 X 16 FF X 255 X 2 11111111 X 255 然而这失败了 没想到它会起作用 但显示了我的想法 2 X 16 FF ERROR
  • 这是如何计算的?我试图了解 H 的值如何在列表中分配

    该谓词应该打印尺寸列表N包含可能的排列0 and 1 我的问题是 H每次递归都会结转 或者使用以下值创建列表bit H 发生在回溯阶段吗 bit 0 bit 1 gen 0 gen N H T N gt 0 bit H N1 is N 1
  • Prolog 中的条件编写

    I have Prolog包含飞机时刻表的数据库 它看起来是这样的 fly id from to days 1 0 1 0 1 0 1 正如你所看到的 有 7 个值days谓词 从星期一到星期日 我想做的是每天打印 价值所在1 但将其打印为
  • 在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 我知
  • Smullyan 数值机的解决方案

    在这里我建议找到 Smullyan 数值机的解决方案 此处定义 http heras gilsanz com manuel smullyan machines html 问题陈述 它们是接受数字列表作为输入 并根据输入模式遵循一些规则将其转
  • Prolog 中的分配性检查

    假设我有一个等价关系eq 以及多个二元运算符o 1 o 2 o n 我想找出哪些操作分配给其他操作 假设我有一个可以确定两个表达式是否等价的知识库 一个简单的解决方案是输入所有可能的查询 对于左分配性 eq o 1 Z o 1 X Y o
  • 函数式语言中的多线程? (序言)

    当我的朋友在学校开始学习 Prolog 时 我嘲笑他学习了一门无用的语言 然而 他向我展示了一些我从来不知道可能发生的东西 我想知道这个技术从何而来 技术是这样的 permutation List isAMember X List dele
  • 获取 Prolog 中的解决方案列表

    我正在学习 Prolog 并且正在阅读一本名为 人工智能 Prolog 编程 的书 作为练习 我想学习如何扩展本书中的示例之一 有人可以帮忙吗 假设您有以下事实 parent pam bob pam is a parent of bob p
  • 针对数字板难题的优化 CLP(FD) 求解器

    考虑问题从https puzzling stackexchange com questions 20238 explore the square with 100 hops https puzzling stackexchange com
  • Prolog - 删除非唯一元素

    我有一个谓词来检查元素是否是列表的成员 并且看起来如下 member X X member X T member X T 当我打电话时 member 1 2 3 1 4 我明白了 是的 现在我必须使用它来编写谓词 该谓词将从列表列表中删除所
  • current_prolog_flag double_quotes DCG(代码或字符)?

    在使用 SWI Prolog DCG 时 我注意到有些人注意到 set prolog flag double quotes codes Jan http www swi prolog org pldoc man section string
  • 如何在 swi-prolog 的 prolog 文件中运行 prolog 查询?

    如果我有一个定义规则的 prolog 文件 并在 Windows 中的 prolog 终端中打开它 它会加载事实 然而 然后它显示 提示我手动输入一些内容 如何将代码添加到文件中 以便它实际上会评估这些特定的语句 就像我输入它们一样 像这样
  • Prolog 管线任务

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

    我想要一个包含三个元素 A B 和 C 的列表 L 并具有以下约束 use module library clpfd L A B C L ins 1 3 A B C 但是 它给出了一个错误 Syntax error Operator exp
  • 井字游戏的极小极大

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

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

    我想在 Prolog 中以递归尾部模式计算斐波那契数列 fibonacci 0 0 fibonacci 1 1 fibonacci N Result fibonacci N 1 0 fibonacci N Result Count Coun
  • SWI Prolog 使用的检查优化会发生什么情况?

    去引用SICStus Prolog 手册 https sicstus sics se sicstus docs 3 12 9 html sicstus Occur html 逻辑编程背后的通常数学理论禁止 创建循环项 规定发生检查应该是 每
  • 以系统的方式报告 Prolog 中查询失败的“原因”

    我正在 Prolog 中寻找一种方法 模式或内置功能 我可以用它来返回why一组谓词失败 至少就数据库中的谓词而言 当用户在系统中提出查询时 我试图能够说的不仅仅是 那是错误的 例如 假设我有两个谓词 blue 1如果某物是蓝色的 则为真
  • 如何找到排列的索引

    index List Idx Predicate will get List with permutation and I want to know index of permutation For example index 4 1 3

随机推荐