prolog-findall相关内容
假设我有一个包含多个事实的谓词 pred. pred(a, b, c).预测(a,d,f).预测(x,y,z). 我可以使用 findall/3 来获取所有可以进行模式匹配的事实列表吗? 例如,如果我有 pred(a, _, _)我想获得 [pred(a, b, c), pred(a, d, f)] 解决方案 简单总结一下@mbratch在评论区说的话: 是的,
..
假设我想以简单的匹配方式找到区分两个类的一组特征/属性,我可以在 prolog 中使用 clpfd 来做到这一点吗? c_s_mining(Features,Value):-特征 = [F1,F2,F3,F4],功能 ins 0..1,示例A = [A1,A2,A3,A4],示例 B =[B1,B2,B3,B4],示例 C =[C1,C2,C3,C4],A1#=0, A2#=1,A3#=0,A4
..
?- 排列([A,B,C],Z).Z = [A, B, C] ;Z = [A, C, B] ;Z = [B, A, C] ;Z = [B, C, A] ;Z = [C, A, B] ;Z = [C, B, A] ;错误的. 有道理.我可以处理 [A,B,C] 的排列,并且该排列包含与 [A,B,C] 中相同的元素,所以我所做的一切这些元素将适用于我的原始列表. 现在: ?- findal
..
我是 Prolog 的初学者,我正在处理一个对您来说可能很愚蠢的问题,但我真的不明白我做错了什么!好的,我有这个文件fruits.pl,里面有这样的东西: fruit(apple,small,sweet).水果(柠檬,小,不甜).水果(瓜,大,甜). 我已经(在那个文件中创建了一个 coexist(X,Y) 原子来检查两个水果是否可以放在一起放在盘子里.它工作正常!但现在我无法创建一个建议(X
..
假设我有一个包含几个事实的谓词 pred. pred(a, b, c).预测(a,d,f).预测(x,y,z). 我可以使用 findall/3 来获取所有可以模式匹配的事实的列表吗? 例如,如果我有 pred(a, _, _)我想获得 [pred(a, b, c), pred(a, d, f)] 解决方案 简单总结一下@mbratch在评论区说的: 是的,但您
..
在Prolog中使用 findall 如何在目标内执行操作而不影响回溯? 以下示例说明了我要实现的目标: value('M1', 11, 3). value('M2', 11, 3). connection('M1',1, 'A', 'B'). connection('M1',1, 'B', 'C'). connection('M1',2, 'C', 'D'). connection
..
我有一个看起来像这样的知识库 fact1(1, _, a, _, _). fact1(2, _, c, _, _). fact1(3, _, d, _, _). fact1(4, _, f, _, _). fact2(_, 1, b, _, _). fact2(_, 2, c, _, _). fact2(_, 4, e, _, _). 对于每个fact1& fact2,其中(在此示例中
..
我受命在Prolog中实现findall的版本,除了not和cut之外,不使用任何Prolog内置组件-因此基本上是在纯Prolog中. 我正在尝试搜索所有直系后代的树并将结果返回列表中 parent(a, b). parent(b, c). parent(b, d). parent(e, d). 到目前为止,我有: find(X, L) :- find2(X, [], L).
..