Prolog是最常用的逻辑编程语言。它通过按时间顺序回溯和通过统一的模式匹配来支持非确定性编程。
我是序言新手。我尝试了这个简单的程序。 男人(拉胡尔)。 人(X):- 人(X)。 男(X):- 男(X)。 女(X):- \+ 男(x)。 女(萨米塔)。 已婚(萨米塔、拉胡尔)。 爱(X,Y):-结婚(X,Y)。 妈...
我每个元素都需要写一次,例如比利时与法国接壤,它应该自动暗示法国与比利时接壤。 不幸的是,语句 borders(X, Y) :- borders(Y, X)。夫...
我目前正在准备 Prolog 考试,因此我正在尝试做一些示例问题来做好准备。我已经尝试这个有一段时间了,它的任务是创建 intgr/1 以便 ?-intgr(X)。 X=0; X...
没有完全理解Prolog解析器。为什么这会返回 false 而不是 true?
我正在编写一些序言来确定给定的查询是否与语法匹配。 S → F |T N T |ε F → 如果 B 则 { S } |如果 B 则 { S } 否则 { S } B → (T E T ) T → x|y|0 E → > | < N ⇒ +| − | = Now I ...
如何在 PROLOG 中从 (3 2 1 2 3) 制作像 (3 (2 (1) 2) 3) 这样的嵌套列表? 有一个条件:不允许使用循环运算符、直接访问列表元素的函数或高级
我正在启动 Prolog,由七周七种语言提供,并且在理解 Prolog 如何处理递归方面遇到了一些困难。 给出以下代码: 总和(0,[])。 sum(总计,[头|Ta...
令 S = [x1, x2, ..., xn] 为不同数字的随机序列。我们可以将 S 的运行定义为: 序列 [x1, x2, ..., xi],对于 1 ≤ i ≤ n,使得 x1 < x2 < ... < xi, and i = n or xi...
在这个 Clingo 程序中,我定义有 2 辆车、2 个包裹,并且有由包裹和汽车组成的分配,但 Clingo 强制所有可能的分配组合...
假设以下事实已输入到 Prolog 数据库中: father(X, Y) // X 是 Y 的父亲 mother(X, Y) // X 是 Y 的母亲 male(X) // X 是男性 女性...
我是 Prolog 新手,我想编写一个简单的谓词来检查给定值是否在列表中。 我不知道我所学的列表方式是否正确。我被告知这是一辆汽车/c...
我正在尝试在序言中实现一个块世界程序。区块世界是人工智能中的一个众所周知的问题,其本身相当简单。这是我当前的代码: % 定义你的工作中的块...
我在Prolog中编写了一个处理单位转换的程序,但我总是遇到堆栈溢出:你知道为什么吗?
无论重构如何,问题仍然存在,但它会改变,如果我切换第 6 行和第 7 行,我会得到不同的结果?这怎么可能? 如果相关的话,这是 MacOS Monterey 上的 gnuprolog (
我是序言新手,正在尝试对列表进行求和,例如: a(1,2,3).a(2,3,4).a(4,5,6).a(7,8,9)。 规则1(SUM):-findall([X,Y,Z],a(X,Y,Z),列表),总和(列表,SUM)。 我尝试使用 sum(LIST,SUM) 并且会
我已经为这个问题苦苦挣扎了两天多了。我的 Prolog 代码就这么简单: 父亲(亚伯拉罕,以撒)。 母亲(莎拉,艾萨克)。 父母(X,Y):-父亲(X,Y)。 父母(X,Y):-母亲(...
有人可以解释一下替换组合的逻辑如何与以下代码块配合使用吗? 加2(0,X,X)。 % 0+X = X plus2(s(X), Y, s(Z)) :- 加2(Y,X,Z)。 % (...
我正在尝试编写一个接受 u0v 形式的字符串的 dcg,其中 u 和 v 是字母表 {1, 2, 3} 上的字符串,u 是 revere 中的 v。我所拥有的似乎有效,因为问题的第一个答案......
Lion 和 Unicorn 使用 Prolog SAT 求解器
Prolog SAT 求解器在解决这个谜语方面是否有优势: 当爱丽丝进入遗忘森林时,她并没有 忘记一切,只忘记某些事情。她经常忘记她 名字,一个...
我正在尝试在 prolog 中使用 DCG 创建斐波那契数列。我有这个作为初学者,但是我不知道为什么代码没有被执行。 下面是代码: 撒谎...
例如: isin([1,2,3], [1,0,1,2,3,0]) 将产生 true,因为 123 在 101230 之内 我写了以下代码: isin([AH|AT],[AH|AT]). isin([AH|AT],[BH|BT]):- AH = BH, isin(AT,BT),isin([...
我刚刚开始学习Prolog,我遇到了这个替换示例: 我们有替换 S2 = {X= 兄弟(maya), Y = 朋友(john)} 我们将替换 S2 应用于friend(X, Y...